2010-03-11 15 views
6

Quiero cambiar la alineación de un encabezado en una cuadrícula de datos en Silverlight, y parece que no puedo encontrar la manera de hacerlo. Esto es lo que tengo hasta ahora:Encabezado de Silverlight DataGrid Alineación horizontal

<data:DataGridTextColumn Header="#" 
          IsReadOnly="True" 
          ElementStyle="{StaticResource CenterAlignStyle}" 
          Binding="{Binding OutlineNumber, Mode=OneWay}" > 
    <data:DataGridTextColumn.HeaderStyle> 
     <Style TargetType="prim:DataGridColumnHeader"> 
     <Setter Property="HorizontalAlignment" Value="Center"/> 
     </Style> 
    </data:DataGridTextColumn.HeaderStyle> 
    </data:DataGridTextColumn> 

No importa lo que intente, parece que no puede cambiar la alineación predeterminada, lo que parece ser "izquierda".

+0

Estoy teniendo el mismo problema. ¿Alguna suerte con esto todavía? –

Respuesta

9

Usted estaban muy cerca, su: -

<Setter Property="HorizontalContentAlignment" Value="Center"/> 
+0

¡En realidad, esto funciona! No me di cuenta porque no estaba redimensionando la columna para ver que el texto se mantiene alineado a la derecha en el encabezado. ¡Muchas gracias! –

2

Tal vez agregar relleno para que se vea mejor ...

<Style x:Key="HeaderCenter" 
      TargetType="dataPrimitives:DataGridColumnHeader"> 
     <Setter Property="HorizontalContentAlignment" 
       Value="Center" /> 
     <Setter Property="HorizontalAlignment" 
       Value="Stretch" /> 
     <Setter Property="Padding" 
       Value="12,2,2,2" /> 
    </Style> 
0

Parece que este enfoque funciona sorta, pero se obtiene el encabezado predeterminado , alineado a la derecha. Tengo un estilo de recurso estático para datagridcolumnheader y I solo desea cambiar la alineación dejando todos los otros elementos de estilo como se incluyen en el estilo personalizado. hasta ahora tengo:

xmlns:sdk="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
xmlns:prim="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"

y

<sdk:DataGrid x:Name="ServicesDataGrid" Width="Auto" Margin="15,5,5,5" ColumnHeaderStyle="{StaticResource DataGridColHeaderStyle}" ...... 

y

<sdk:DataGridTextColumn Header="Gross Amt" Binding="{Binding GrossAmount,StringFormat=n2}" ElementStyle="{StaticResource RightAlignStyle}"> <sdk:DataGridTextColumn.HeaderStyle> <Style TargetType="prim:DataGridColumnHeader"> <Setter Property="HorizontalContentAlignment" Value="Right"/> </Style> </sdk:DataGridTextColumn.HeaderStyle> </sdk:DataGridTextColumn>

Cambiar el tamaño de la cuadrícula muestra el texto está alineado a la derecha, pero el tipo de letra, fondo, etc, son no como se define en DataGridColHeaderStyle

Gracias

Cuestiones relacionadas