我读过两本不同的书,在 WPF 中, ToolBar.Header 属性没有做任何事情:
- 由 Adam Nathan 开发的 Windows Presentation Foundation,第 1 页。119
- 带有 VB 2008 的 Pro WPF,第 1 页。650
但是,我正在像这样动态创建我的 ToolBar 对象(tbtToolBar 实际上是在 Xaml 中定义的 ToolBarTray,vm 是窗口的 ViewModel):
foreach (IToolBarViewModel toolBarViewModel in vm.ToolBars)
{
ToolBar toolBar = new ToolBar();
toolBar.DataContext = toolBarViewModel;
// Bind the Header Property
Binding headerBinding = new Binding("Header");
toolBar.SetBinding(ToolBar.HeaderProperty, headerBinding);
// Bind the Items Property
Binding itemsBinding = new Binding("Items");
toolBar.SetBinding(ToolBar.ItemsSourceProperty, itemsBinding);
tbtToolBar.ToolBars.Add(toolBar);
}
并且 Header 属性清楚地显示在标签中,作为工具栏中的第一项。这不是我想要的行为。当用户右键单击 ToolBarTray 时,我想使用标题作为工具栏下拉列表中的标题,就像书籍描述的那样。
所以,我试图通过设置摆脱 Header:
toolBar.HeaderTemplate = new DataTemplate();
这可行,但现在工具栏中有一个难看的小间隙。
- 有没有办法让标题在没有间隙的情况下不可见?
- 为什么这些书明显错了?从那时到现在有什么变化吗?