Я читал в двух разных книгах, что в WPF свойство ToolBar.Header ничего не делает:
Однако я создаю свои объекты ToolBar динамически, как это (tbtToolBar на самом деле является ToolBarTray, определенным в Xaml, 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 четко отображается в метке в качестве первого элемента на панели инструментов. Это не то поведение, которое я хочу. Я хотел бы использовать заголовок в качестве заголовка в раскрывающемся списке панелей инструментов, когда пользователь щелкает правой кнопкой мыши на панели инструментов, как описано в книгах.
Итак, я попытался избавиться от заголовка, установив:
toolBar.HeaderTemplate = new DataTemplate();
Это работает, но теперь на панели инструментов есть небольшой неприглядный пробел.
- Есть ли способ сделать заголовок невидимым без пробела?
- Почему книги явно не правы? Что-то изменилось между тогда и сейчас?