简体   繁体   中英

Silverlight DataGrid Header Horizontal Alignment

I want to change the alignment of a header on a datagrid in Silverlight, and I can't seem to figure out how to do it. Here's what I have so far:

  <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 matter what I try, I can't seem to change the default alignment, which appears to be "left."

你真的很亲密,它: -

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

Maybe add padding to make it look better...

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

It seems that this approach sorta works but you get the default header, right aligned. I have a static resource style for the datagridcolumnheader and I only want to change the alignment leaving all the other style elements as contained in the custom style. So far I have:

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"

and

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

and

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

Resizing the grid shows the text is right aligned but the font, background, etc are not as defined in DataGridColHeaderStyle

Thanks

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM