我在WPF(c#)中使用DataSet填充DataGrid控件。我需要一种方法将标题文本对齐到中心。
注意:在运行程序期间,可以更新DataGrid.ItemsSource。 这跟我以前的问题不一样......
答案 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
上设置该样式属性。