我使用 WPF(c#) 中的 DataSet 填充 DataGrid 控件。我需要一种将标题文本对齐到中心的方法。
注意:在我的程序运行期间,可以更新 DataGrid.ItemsSource。这和我之前的问题不一样...
<DataGrid ItemsSource="{Binding Items}"
AutoGenerateColumns="True">
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Style.Setters>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style.Setters>
</Style>
</DataGrid.ColumnHeaderStyle>
</DataGrid>
您只需对类型的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
。