2010-03-11 4 views
6

Я хочу изменить выравнивание заголовка на datagrid в Silverlight, и я не могу понять, как это сделать. Вот что у меня до сих пор:Silverlight DataGrid Header Горизонтальное выравнивание

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

Независимо от того, что я стараюсь, я не могу изменить выравнивание по умолчанию, который, как представляется, быть «слева.»

+0

У меня такая же проблема. Удачи с этим еще? –

ответ

9

Вы были очень близки, его: -

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

Собственно, это действительно работает! Я не понял этого, потому что я не изменял размер столбца, чтобы увидеть, что текст остается выровненным справа от заголовка. Спасибо! –

2

Может быть, добавить отступы, чтобы сделать его лучше ...

<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

кажется, что этот подход Сорта работает, но вы получите заголовок по умолчанию , выравнивание вправо. У меня есть статический стиль ресурса для datagridcolumnheader, а только хочу изменить выравнивание, оставив все остальные элементы стиля, содержащиеся в пользовательском стиле. До сих пор у меня есть:

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"

и

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

и

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

Изменение размера сетки показывает текст выровнен по правому краю, но шрифт, фон, и т.д. не определены в DataGridColHeaderStyle

спасибо

Смежные вопросы