2010-03-11 11 views
6

voglio cambiare l'allineamento di un colpo di testa su un datagrid in Silverlight, e io non riesco a capire come farlo. Ecco quello che ho finora: "sinistro"Silverlight DataGrid Header Allineamento orizzontale

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

Non importa quello che provo, non riesco a modificare l'allineamento di default, che sembra essere

+0

Sto avendo lo stesso problema. Hai ancora fortuna con questo? –

risposta

9

Si erano davvero vicino, la sua: -

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

In realtà, funziona! Non me ne sono reso conto perché non stavo ridimensionando la colonna per vedere che il testo rimane allineato a destra nell'intestazione. Grazie mille! –

2

Forse aggiungere imbottitura per renderla migliore ...

<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

Sembra che questo approccio funziona sorta, ma si ottiene l'intestazione di default , allineato a destra. Ho uno stile risorsa statica per il datagridcolumnheader e ho solo voglio cambiare l'allineamento lasciando tutti gli altri elementi di stile come contenuto nello stile personalizzato. Finora ho:

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"

e

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

e

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

Ridimensionare la griglia mostra il testo viene allineato a destra, ma il tipo di carattere, sfondo, ecc sono non definita DataGridColHeaderStyle

Grazie

Problemi correlati