简体   繁体   English

WPF中StatusBarItem类的重点是什么?

[英]What is the point of the StatusBarItem class in WPF?

How is the StatusBarItem class supposed to be used? 应该如何使用StatusBarItem类? Is every element in a StatusBar 's content supposed to be wrapped with it? StatusBar的内容中的每个元素都应该用它包裹吗?

I don't really understand how StatusBarItem affects the StatusBar layout. 我真的不明白StatusBarItem如何影响StatusBar布局。 It seems like I can use HorizontalAlignment on a StatusBarItem , but not when I put the element in the StatusBar directly: 看起来我可以在StatusBarItem上使用HorizontalAlignment ,但是当我直接将该元素放入StatusBar

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

Also if you wrap a Separator in a StatusBarItem the Separator changes to horizontal. 此外,如果将Separator包装在StatusBarItemSeparator将更改为水平。 Separator s default to vertical when put in the StatusBar directly without a StatusBarItem wrapper. 在没有StatusBarItem包装Separator的情况下直接放入StatusBar时, Separator默认为垂直。

A StatusBar is an ItemsControl . StatusBarItemsControl All ItemsControl s have a container class. 所有ItemsControl都有一个容器类。 For ListBox es, it's ListBoxItem . 对于ListBox ,它是ListBoxItem For StatusBar , it's StatusBarItem . 对于StatusBar ,它是StatusBarItem If you don't explicitly wrap your item in a StatusBarItem , it will be implicitly wrapped in one for you. 如果您没有在StatusBarItem明确地包装您的项目,那么它将隐式包装在一个中。

If you need to set properties of an ItemsControl 's containers, you can use the ItemContainerStyle property: 如果需要设置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>

Finally, note that the StatusBar uses a DockPanel by default to lay out its children. 最后,请注意, StatusBar默认使用DockPanel来布局其子项。 This can be frustrating when you're doing intricate layouts. 当您进行错综复杂的布局时,这可能令人沮丧。 See my blog post here on how to swap it out for a Grid . 请参见我的博客文章在这里就如何将其交换出去Grid

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM