WPF - XAML使DataGridTextColumnsElements对齐到中心

时间:2014-06-24 16:03:01

标签: c# wpf xaml datagrid

有没有办法将DataGridTextColumns中的文本全局对齐到中间或中心?

每个DataGrid执行此操作的xaml是

<DataGridTextColumn.ElementStyle>
  <Style TargetType="{x:Type TextBlock}">
     <Setter Property="HorizontalAlignment"
                Value="Center" />
  </Style>
</DataGridTextColumn.ElementStyle>

但是我不想为每个DataGrid复制和粘贴此代码,我喜欢在app.xaml文件中执行此操作。

我正在寻找类似的东西(但不起作用)

  <Style TargetType="{x:Type DataGridTextColumn.ElementStyle}">
     <Setter Property="HorizontalAlignment" Value="Center"/>
  </Style>

3 个答案:

答案 0 :(得分:0)

将样式放在资源字典中,在App.xaml中引用。

xmlns:dg="clr-namespace:Microsoft.Windows.Controls.Primitives;assembly=WPFToolkit"

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

并在您的XAML中使用它。

答案 1 :(得分:0)

您可以创建一个用户控件,它封装您的自定义网格并在需要的地方重复使用。

答案 2 :(得分:0)

可能无法为所有DataGridTextColumn定义全局样式,因为DataGridTextColumn不是FrameworkElement,而Style.TargetType仅允许从{{1}派生的类型}。

因此,一种解决方法可能是将格式应用于所有 FrameworkElement,如下所示:

DataGridCell