在状态栏中使用分隔符
Posted
技术标签:
【中文标题】在状态栏中使用分隔符【英文标题】:Using Separator in StatusBar 【发布时间】:2012-02-19 23:24:31 【问题描述】:我有一个带有 StatusBar 控件的 WPF 窗口。下面是我的状态栏的 xaml。我试图在 StatusBarItems 之间放置一个分隔符。但是发生的情况是所有分隔符都位于第一个 StatusBarItem 之后。
如何让分隔符定位在状态栏中的每个项目之后?
我确实注意到,如果我不使用 ItemsPanelTemplate,分隔符可以正常工作。如何让以下 xaml 中的分隔符正确定位?
<StatusBar Grid.Row="2" Height="23" Name="myStatusBar" VerticalAlignment="Bottom" >
<StatusBar.ItemsPanel>
<ItemsPanelTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
</Grid>
</ItemsPanelTemplate>
</StatusBar.ItemsPanel>
<StatusBarItem Grid.Column="0">
<StackPanel Orientation="Horizontal">
<Image Source="..\Images\bullet_green.png" Height="15" Width="15" />
<TextBlock Name="txtStatus" Height="18" Width="77" Text="Binding StatusBarStatus"/>
</StackPanel>
</StatusBarItem>
<Separator Width="1"/>
<StatusBarItem Grid.Column="1">
<StackPanel Orientation="Horizontal">
<Image Source="..\Images\user_add.png" Height="15" Width="15" />
<TextBlock Name="txtCurrentContact" Text="Binding StatusBarCurrentContact" />
</StackPanel>
</StatusBarItem>
<Separator Width="1"/>
<StatusBarItem Grid.Column="2">
<!--<ProgressBar Value="30" Width="80" Height="18"/>-->
<StackPanel Orientation="Horizontal">
<Image Source="..\Images\database03.png" Height="15" Width="15" />
<TextBlock Name="txtDatabase" Text="Binding StatusBarDatabase" />
</StackPanel>
</StatusBarItem>
<Separator Width="1"/>
<StatusBarItem Grid.Column="3">
<TextBlock Name="txtMode" Text="Binding StatusBarMode"/>
</StatusBarItem>
<StatusBarItem Grid.Column="4">
<TextBlock Name="txtTally" Text="Binding StatusBarTally"/>
</StatusBarItem>
</StatusBar>
【问题讨论】:
【参考方案1】:您所有的分隔符都在第 0 列。将它们放在一列中,即:
<StatusBarItem Grid.Column="0">
<StackPanel Orientation="Horizontal">
<Image Source="..\Images\bullet_green.png" Height="15" Width="15" />
<TextBlock Name="txtStatus" Height="18" Width="77" Text="Binding StatusBarStatus"/>
</StackPanel>
</StatusBarItem>
<Separator Width="1" Grid.ColumnSpan="2" Grid.Column="0" HorizontalAlignment="Center"/>
<StatusBarItem Grid.Column="1">
<StackPanel Orientation="Horizontal">
<Image Source="..\Images\user_add.png" Height="15" Width="15" />
<TextBlock Name="txtCurrentContact" Text="Binding StatusBarCurrentContact" />
</StackPanel>
</StatusBarItem>
【讨论】:
太棒了!谢谢,现在说得通了。以上是关于在状态栏中使用分隔符的主要内容,如果未能解决你的问题,请参考以下文章