-4

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

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

4

2 回答 2

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>
于 2013-08-13T20:34:26.017 回答
0

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

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

附录一般来说,你可以在 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

于 2013-08-13T20:33:06.503 回答