2012-01-26 16 views
7

ステータスバーコントロール付きのWPFウィンドウがあります。以下は私のステータスバーのxamlです。 StatusBarItemsの間にセパレータを配置しようとしています。しかし、セパレータはすべて最初のStatusBarItemの直後に配置されます。セパレータをStatusBarで使用する

ステータスバーの各アイテムの後にセパレータを配置するにはどうすればよいですか?

セパレータが正しく機能する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> 

答えて

10

あなたのセパレータのすべてが列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> 
+1

すごいです!ありがとう、今、意味がある。 – Jerry

関連する問題