0

我读过两本不同的书,在 WPF 中, ToolBar.Header 属性没有做任何事情:

但是,我正在像这样动态创建我的 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();

这可行,但现在工具栏中有一个难看的小间隙。

  1. 有没有办法让标题在没有间隙的情况下不可见?
  2. 为什么这些书明显错了?从那时到现在有什么变化吗?
4

1 回答 1

0

我能够完成这项工作的唯一方法是保持 Header 属性为空,并在 ToolBarViewModel 上创建另一个名为 Name 的属性。

于 2009-05-19T11:57:38.833 回答