StatusBar中的StackPanel不会延伸

时间:2017-08-16 13:40:03

标签: wpf xaml layout statusbar stackpanel

当我将StackPanel作为最后一个StatusBarItem添加到StatusBar时,它不会填满所有额外的空间。我想知道为什么会这样,因为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是第二个,它会填充额外的空间。

1 个答案:

答案 0 :(得分:1)

由于您将StatusBarItem属性设置为HorizontalAlignment,因此红色Right不会填充空格。如果您希望它填充Stretch,请将其更改为默认值DockPanel

StackPanel按预期填充StatusBarItem