在Windows Forms中,調整ToolStripStatusLabel的Spring屬性可以把StatusStrip中的Label設定成展開(佔用其他全部空間):
在WPF中,設定StatusBarItem的HorizontalContentAlignment為Stretch,可是這個只能設定最後一個項目:
<StatusBar>
<StatusBarItem>
<Button>A</Button>
</StatusBarItem>
<StatusBarItem>
<Button>B</Button>
</StatusBarItem>
<StatusBarItem HorizontalContentAlignment="Stretch">
<Button>C</Button>
</StatusBarItem>
</StatusBar>
結果:
如果想要更複雜的布局,可以重新定義ItemsControl的ItemsPanel,比如下下面這個略微複雜的StatusBar:
<StackPanel>
<!-- 設定StatusBarItem的樣式,預設HorizontalContentAlignment是Left -->
<StackPanel.Resources>
<Style TargetType="StatusBarItem">
<Setter Property="BorderBrush" Value="Red"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Margin" Value="1"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
</Style>
</StackPanel.Resources>
<StatusBar>
<!-- 設定ItemsPanel為DockPanel -->
<StatusBar.ItemsPanel>
<ItemsPanelTemplate>
<DockPanel />
</ItemsPanelTemplate>
</StatusBar.ItemsPanel>
<StatusBarItem DockPanel.Dock="Top">
<Button>A</Button>
</StatusBarItem>
<StatusBarItem DockPanel.Dock="Right">
<Button>B</Button>
</StatusBarItem>
<StatusBarItem>
<Button>C</Button>
</StatusBarItem>
</StatusBar>
</StackPanel>
結果: