2012-01-26 7 views
7

Tengo una ventana WPF con un control StatusBar. Debajo está el xaml para mi barra de estado. Estoy tratando de colocar un separador entre los elementos de StatusBar. Pero lo que sucede es que todos los separadores se colocan justo después del primer StatusBarItem.Usar el Separador en la Barra de estado

¿Cómo puedo colocar los separadores después de cada elemento en la barra de estado?

Me doy cuenta de que si no estoy utilizando la plantilla ItemsPanel, los separadores funcionan correctamente. ¿Cómo puedo obtener los separadores en la siguiente xaml para colocarlos correctamente?

 <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> 

Respuesta

10

Todos sus separadores están en la columna 0. ponerlos en una columna decir:

<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

impresionante! Gracias, tiene sentido, ahora. – Jerry

Cuestiones relacionadas