StatusBar 中的 StackPanel 不会拉伸

StackPanel in StatusBar won't stretch

当我将 StackPanel 作为最后一个 StatusBarItem 添加到 StatusBar 时,它不会填满所有额外的 space。我想知道为什么会这样,因为 StatusBar 在内部使用 DockPanel 作为 ItemsPanel。

这是一个示例代码:

<Window x:Class="Foo.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:Zadatak1"
    Title="MainWindow"
    WindowState="Maximized">
<DockPanel>
<StatusBar DockPanel.Dock="Bottom">
        <StatusBarItem DockPanel.Dock="Left" Background="SkyBlue">
            <Label>Status....</Label>
        </StatusBarItem>
        <StatusBarItem Background="Red" DockPanel.Dock="Right" HorizontalAlignment="Right">
            <StackPanel Orientation="Horizontal">
                <Label>Time:</Label>
                <Label>02:48:AM</Label>
            </StackPanel>
        </StatusBarItem>
    </StatusBar>
</DockPanel>

如果我更改元素的顺序,让 Label 排在第一位,StackPanel 排在第二位,它会额外填充 space。

红色 StatusBarItem 没有填充 space,因为您将其 HorizontalAlignment 属性 设置为 Right。如果要填充 DockPanel.

,请将其更改为默认值 Stretch

StackPanel 确实按预期填充了 StatusBarItem