2010-01-20 62 views
12

StatusBarItem類應該如何使用? StatusBar的內容中的每個元素是否應該與它一起包裝?WPF中StatusBarItem類的要點是什麼?

我不太瞭解StatusBarItem如何影響StatusBar佈局。好像我可以在StatusBarItem使用HorizontalAlignment,而不是當我把在StatusBar直接元素:

<StatusBar> 
    <TextBlock HorizontalAlignment="Right" Text="Not right" /> 
    <StatusBarItem HorizontalAlignment="Center"> 
     <TextBlock Text="Center" /> 
    </StatusBarItem> 
</StatusBar> 

此外,如果你在一個StatusBarItemSeparator變化水平緊裹SeparatorSeparator默認爲垂直,直接放入StatusBar而不包含StatusBarItem包裝。

+0

我有一個類似的問題,使用'Separator'與'ToolBar' http://stackoverflow.com/questions/1274370/ – kenwarner 2010-01-20 16:51:03

+1

不是一個答案,但它的一個ItemsControl,這意味着你可以將它綁定到一個對象的集合和使用DataTemplates來確定這些項目在狀態欄中的顯示方式。可能它在StatusBar中提供比標準ItemsControl更好的行爲。 – Will 2010-01-20 17:00:45

回答

14

A StatusBarItemsControl。所有ItemsControl都有一個容器類。對於ListBox es,它是ListBoxItem。對於StatusBar,它是StatusBarItem。如果你沒有明確地將你的物品包裝在StatusBarItem中,它將被隱式包裝在你的物品中。

如果您需要設置一個ItemsControl的容器的屬性,可以使用ItemContainerStyle屬性:

<StatusBar> 
    <TextBlock>One</TextBlock> 
    <TextBlock>Two</TextBlock> 
    <TextBlock>Three</TextBlock> 
    <StatusBar.ItemContainerStyle> 
     <Style TargetType="StatusBarItem"> 
      <Setter Property="HorizontalAlignment" Value="Right"/> 
     </Style> 
    </StatusBar.ItemContainerStyle> 
</StatusBar> 

最後,要注意的是,StatusBar默認使用一個DockPanel奠定了它的孩子。當你在做複雜的佈局時,這可能會令人沮喪。請參閱我的博客文章here,瞭解如何將其換出Grid

+0

感謝您分享博客文章!下面爲我​​工作: SliverNinja 2012-01-19 20:41:44