2010-01-20 11 views
12

¿Cómo se supone que se utilizará la clase StatusBarItem? ¿Se supone que todos los elementos en un contenido de StatusBar están envueltos en él?¿Cuál es el objetivo de la clase StatusBarItem en WPF?

Realmente no entiendo cómo afecta StatusBarItem al diseño StatusBar. Parece que puedo usar en un HorizontalAlignmentStatusBarItem, pero no cuando me puso el elemento directamente en el StatusBar:

<StatusBar> 
    <TextBlock HorizontalAlignment="Right" Text="Not right" /> 
    <StatusBarItem HorizontalAlignment="Center"> 
     <TextBlock Text="Center" /> 
    </StatusBarItem> 
</StatusBar> 

También si usted envuelve un Separator en un StatusBarItem los Separator cambios en horizontal. Separator s predeterminado a vertical cuando se coloca en el StatusBar directamente sin un contenedor StatusBarItem.

+0

tuve un problema similar al usar 'Separator' con' ToolBar' http://stackoverflow.com/questions/1274370/ – kenwarner

+1

No es una respuesta, pero es un ItemsControl, lo que significa que puede vincularlo a una colección de objetos y utilice DataTemplates para determinar cómo se muestran esos elementos en la barra de estado. Probablemente ofrece un mejor comportamiento en un StatusBar que un ItemsControl estándar. – Will

Respuesta

14

A StatusBar es un ItemsControl. Todos ItemsControl s tienen una clase de contenedor. Para ListBox es, es ListBoxItem. Para StatusBar, es StatusBarItem. Si no envuelve su artículo de manera explícita en un StatusBarItem, se lo envolverá implícitamente en uno para usted.

Si necesita establecer las propiedades de envases por ItemsControl 's, puede utilizar la propiedad ItemContainerStyle:

<StatusBar> 
    <TextBlock>One</TextBlock> 
    <TextBlock>Two</TextBlock> 
    <TextBlock>Three</TextBlock> 
    <StatusBar.ItemContainerStyle> 
     <Style TargetType="StatusBarItem"> 
      <Setter Property="HorizontalAlignment" Value="Right"/> 
     </Style> 
    </StatusBar.ItemContainerStyle> 
</StatusBar> 

Por último, tenga en cuenta que la StatusBar utiliza un DockPanel por defecto para exponer sus hijos. Esto puede ser frustrante cuando haces diseños intrincados. Ver mi blog post here sobre cómo cambiarlo por un Grid.

+0

¡Gracias por compartir la publicación del blog! Lo siguiente funcionó para mí ' ' – SliverNinja

Cuestiones relacionadas