WPF 中的 StatusBarItem 类有啥意义?
Posted
技术标签:
【中文标题】WPF 中的 StatusBarItem 类有啥意义?【英文标题】:What is the point of the StatusBarItem class in WPF?WPF 中的 StatusBarItem 类有什么意义? 【发布时间】:2011-01-07 08:49:27 【问题描述】:StatusBarItem
类应该如何使用? StatusBar
的内容中的每个元素都应该用它包装吗?
我真的不明白StatusBarItem
如何影响StatusBar
布局。似乎我可以在StatusBarItem
上使用HorizontalAlignment
,但当我将元素直接放入StatusBar
时却不行:
<StatusBar>
<TextBlock HorizontalAlignment="Right" Text="Not right" />
<StatusBarItem HorizontalAlignment="Center">
<TextBlock Text="Center" />
</StatusBarItem>
</StatusBar>
此外,如果您将 Separator
包裹在 StatusBarItem
中,则 Separator
将更改为水平。 Separator
s 在没有 StatusBarItem
包装器的情况下直接放入 StatusBar
时默认为垂直。
【问题讨论】:
我在使用Separator
和 ToolBar
***.com/questions/1274370 时遇到了类似的问题
不是答案,而是一个 ItemsControl,这意味着您可以将其绑定到对象集合并使用 DataTemplates 来确定这些项目在状态栏中的显示方式。可能它在 StatusBar 中提供了比标准 ItemsControl 更好的行为。
【参考方案1】:
StatusBar
是 ItemsControl
。所有ItemsControl
s 都有一个容器类。对于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
。
【讨论】:
感谢分享博文!以下为我工作<StatusBar.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"/> </ItemsPanelTemplate> </StatusBar.ItemsPanel>
以上是关于WPF 中的 StatusBarItem 类有啥意义?的主要内容,如果未能解决你的问题,请参考以下文章