DataGrid标题对齐

时间:2013-08-13 20:16:18

标签: wpf xaml datagrid

我在WPF(c#)中使用DataSet填充DataGrid控件。我需要一种方法将标题文本对齐到中心。

注意:在运行程序期间,可以更新DataGrid.ItemsSource。 这跟我以前的问题不一样......

2 个答案:

答案 0 :(得分:1)

<DataGrid ItemsSource="{Binding Items}" 
              AutoGenerateColumns="True">
        <DataGrid.ColumnHeaderStyle>
            <Style TargetType="DataGridColumnHeader">
                <Style.Setters>
                    <Setter Property="HorizontalContentAlignment" Value="Center"/>
                </Style.Setters>
            </Style>
        </DataGrid.ColumnHeaderStyle>
    </DataGrid>

答案 1 :(得分:0)

您只需设置HorizontalContentAlignment类型的DataGridColumnHeader属性的样式。所以添加到资源:

<Style TargetType="{x:Type DataGridColumnHeader}">
    <Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>

附录通常,您可以看到control templates at this page on MSDN,它可以让您推断出如何应用所需的样式。在这种情况下,控件DataGridColumnHeader的模板如下所示:

<Grid>
    <Border x:Name="columnHeaderBorder" BorderThickness="1" Padding="3,0,3,0">
        <!-- (ellided brushes for brevity) -->

        <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                          SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
      </Border>

      <Thumb x:Name="PART_LeftHeaderGripper"
             HorizontalAlignment="Left"
             Style="{StaticResource ColumnHeaderGripperStyle}" />
      <Thumb x:Name="PART_RightHeaderGripper"
             HorizontalAlignment="Right"
             Style="{StaticResource ColumnHeaderGripperStyle}" />
</Grid>

ContentPresenter是显示标题文本的位置 - 您可以看到将HorizontalAlignment设置为控件的HorizontalContentAlignment(TemplateBinding)。因此,所需要的只是在控件类型DataGridColumnHeader上设置该样式属性。