2012-01-26 10 views
7

Ho una finestra WPF con un controllo StatusBar. Di seguito è il xaml per la mia barra di stato. Sto cercando di posizionare un separatore tra StatusBarItems. Ma quello che succede è che tutti i separatori sono posizionati subito dopo il primo StatusBarItem.Utilizzo di Separator in StatusBar

Come posso posizionare i separatori dopo ogni elemento nella barra di stato?

Ho notato che se non sto usando ItemsPanelTemplate che i separatori funzionano correttamente. Come posso posizionare correttamente i separatori nel sotto 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> 

risposta

10

Tutti i tuoi separatori sono in colonna 0. metterli in una colonna di esempio:

<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

Impressionante! Grazie, ha senso, ora. – Jerry