WPF 中的 StatusBarItem 类有什么意义?

发布于 2024-08-18 17:09:50 字数 851 浏览 2 评论 0原文

StatusBarItem 怎么样 应该使用类吗? StatusBar 内容中的每个元素都应该用它包裹吗?

我不太明白 StatusBarItem 如何影响 StatusBar 布局。似乎我可以在 StatusBarItem 上使用 Horizo​​ntalAlignment,但当我直接将元素放入 StatusBar 中时不能使用:

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

此外,如果您包装 < StatusBarItem 中的 code>Separator 的 Separator 更改为水平。当直接放入 StatusBar 而不使用 StatusBarItem 包装器时,Separator 默认为垂直。

How is the StatusBarItem class supposed to be used? Is every element in a StatusBar's content supposed to be wrapped with it?

I don't really understand how StatusBarItem affects the StatusBar layout. It seems like I can use HorizontalAlignment on a StatusBarItem, but not when I put the element in the StatusBar directly:

<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. Separators default to vertical when put in the StatusBar directly without a StatusBarItem wrapper.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

反目相谮 2024-08-25 17:09:50

StatusBar 是一个ItemsControl。所有ItemsControl都有一个容器类。对于 ListBox 来说,它是 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 使用 < code>DockPanel 默认情况下布置其子项。当您进行复杂的布局时,这可能会令人沮丧。请参阅我的博客文章此处了解如何将其替换为 <代码>网格。

A StatusBar is an ItemsControl. All ItemsControls have a container class. For ListBoxes, it's ListBoxItem. For StatusBar, it's StatusBarItem. If you don't explicitly wrap your item in a StatusBarItem, it will be implicitly wrapped in one for you.

If you need to set properties of an ItemsControl's containers, you can use the ItemContainerStyle property:

<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. This can be frustrating when you're doing intricate layouts. See my blog post here on how to swap it out for a Grid.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文