更改单个DataGrid列标题的背景颜色

时间:2017-03-24 22:12:49

标签: c# wpf xaml wpfdatagrid

我正在使用WPF DataGrid,我希望更改单个列标题背景颜色,而不会影响其他颜色。

我发现了以下问题:

How to change column header's background color when using WPF datagrid

但这会改变所有列标题,我只想更改一个。

1 个答案:

答案 0 :(得分:3)

当你使用类似的东西时:

<DataGrid>
  <DataGrid.Resources>
    <Style TargetType="{x:Type DataGridColumnHeader}">
      <Setter Property="Background" Value="Blue" />
    </Style>
  </DataGrid.Resources>
</DataGrid>

您正在更改该范围内所有DataGridColumnHeader的{​​{1}} Style,因为ColumnHeader尚未获得Style

现在,假装Key的{​​{1}}是ItemsSource,其中DataGrid是一个名为List<C>的{​​{1}}属性的类和C。您可以执行此操作,仅设置列string的{​​{1}}:

A

您只能在列B上设置特殊Style

除此之外,请注意以下几点:如果以这种方式更改A,则设置固定的背景颜色,如果您使用鼠标重置,则该颜色不会改变。为了制作响应更快的标头UI,您必须覆盖其整个模板。请阅读this以进行更广泛的讨论。