调整状态栏中项目的大小 - WPF

Resizing items in a statusbar - WPF

如何统一排列状态栏上的项目?因为当我运行项目和最大化window时,所有项目都放在最左边的角落。

 <StatusBar Grid.Row="3" Background="#FFDED9D9"  Grid.ColumnSpan="9" Margin="2,29,0,1"  >


<Label Content="Running"/>
<Separator >
</Separator>
<Label Content="           " />
<Separator>
</Separator>
<Label Content="Object" />
<Separator>
</Separator>
<Label Content="Status:" />
<Rectangle Height="19" RenderTransformOrigin="0.5,0.5" Width="18"    Fill="#FFFFFDFD" >
    <Rectangle.RenderTransform>
        <TransformGroup>
            <ScaleTransform ScaleY="-1" ScaleX="-1"/>
            <SkewTransform/>
            <RotateTransform/>
            <TranslateTransform/>
        </TransformGroup>
    </Rectangle.RenderTransform>
</Rectangle>
<Separator> </Separator>
<Button Content="Show" Height="25.96" Width="117.113" ></Button>
<Separator> </Separator>
<ProgressBar Value="55" Height="20" Width="85"  ></ProgressBar>

        </StatusBar>

向 StatusBar 添加一个 Grid,并根据需要添加尽可能多的列,并将它们的宽度设置为 *

<StatusBar>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Label Grid.Column="0" />
        <Label Grid.Column="1" />
        <Label Grid.Column="2" />
        <Label Grid.Column="3" />
    </Grid>
</StatusBar>

对每个标签和按钮尝试这个,然后你会统一对齐

 HorizontalContentAlignment="Center" VerticalAlignment="Stretch" 

使用 UniformGrid 作为模板,它就是为此而制作的。状态栏中的所有内容都会自动对齐。您不需要为此指定列 ID。您可能需要去掉那些分隔符。

<StatusBar DockPanel.Dock="Bottom">
    <StatusBar.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Rows="1"/>
        </ItemsPanelTemplate>
    </StatusBar.ItemsPanel>

    <Label Content="..." />
    <Label Content="..." />
    <Label Content="..." />
    <Label Content="..." />
</StatusBar>