Pregunta

He leído en dos libros diferentes que en WPF, la propiedad ToolBar.Header no hace nada:

Sin embargo, estoy creando mi barra de herramientas objetos de forma dinámica como esta (tbtToolBar es en realidad un ToolBarTray se define en el XAML, vm es modelo de vista de la ventana):

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);
}

Y la propiedad de cabecera muestra claramente en una etiqueta como el primer elemento de la barra de herramientas. Este no es el comportamiento que quiero. Me gustaría utilizar el encabezado como un título en una lista desplegable de barras de herramientas cuando el usuario hace clic derecho en el ToolBarTray, al igual que los libros describen.

Por lo tanto, he tratado de deshacerse de la cabecera mediante el establecimiento de:

toolBar.HeaderTemplate = new DataTemplate();

Esto funciona, pero ahora hay un pequeño hueco antiestético en la barra de herramientas.

  1. ¿Hay una manera de hacer invisible la cabecera sin la brecha?
  2. ¿Por qué son los libros claramente erróneo? Hizo algo cambio entre entonces y ahora?
¿Fue útil?

Solución

La única manera de que era capaz de hacer este trabajo era mantener a la nula propiedad de la cabecera, y crear una nueva propiedad en el ToolBarViewModel llamado Nombre.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top