如何使用StatusBarItem
类? StatusBar
的内容中的每个元素都应该用它包裹吗?
我真的不明白StatusBarItem
如何影响StatusBar
布局。好像我可以在HorizontalAlignment
上使用StatusBarItem
,但是当我将该元素直接放在StatusBar
时就不行了:
<StatusBar>
<TextBlock HorizontalAlignment="Right" Text="Not right" />
<StatusBarItem HorizontalAlignment="Center">
<TextBlock Text="Center" />
</StatusBarItem>
</StatusBar>
此外,如果您将Separator
StatusBarItem
Separator
更改换行为Separator
。 StatusBar
在没有StatusBarItem
包装的情况下直接放入{{1}}时默认为垂直。
答案 0 :(得分:15)
StatusBar
是ItemsControl
。所有ItemsControl
都有一个容器类。对于ListBox
es,它是ListBoxItem
。对于StatusBar
,它是StatusBarItem
。如果您没有明确地将项目包装在StatusBarItem
中,则会将其隐式包装在一个中。
如果您需要设置ItemsControl
容器的属性,可以使用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>
最后请注意,StatusBar
默认使用DockPanel
来布置其子项。当您进行错综复杂的布局时,这可能令人沮丧。请参阅我的博文here,了解如何将其换成Grid
。