如何使WPF DataGrid列标题透明

时间:2010-02-01 20:51:03

标签: wpf datagrid styles wpftoolkit

我正在尝试使我的WPF Datagrid的列标题透明。

我可以将它设置为没有问题的颜色,但我不能让它透明。这是我试过的:

<Style x:Key="DatagridColumnHeaderStyle" TargetType="{x:Type tk:DataGridColumnHeader}">
   <Setter Property="Background" Value="Transparent" />
   <Setter Property="Foreground" Value="#C2C4C6" />
</Style>

<Style x:Key="DashboardGridStyle" TargetType="{x:Type tk:DataGrid}">
   <Setter Property="ColumnHeaderStyle" Value="{StaticResource DatagridColumnHeaderStyle}" />
   <Setter Property="Background" Value="Transparent" />
   <Setter Property="RowBackground" Value="Transparent" />
</Style>

<tk:DataGrid Style="{StaticResource DashboardGridStyle}" >
...
</tk:DataGrid>

使用此代码,它似乎采用默认画笔。

我错过了什么?

2 个答案:

答案 0 :(得分:4)

我用Snoop来看看发生了什么。似乎另一个DataGridColumnHeader总是在您可以修改的那个之后创建,并且它不受样式更改的影响。当您设置透明背景时,实际上正在应用,所以您看到的是后面的鬼头(具有通常的灰色背景)。

如果您应用彩色背景并使用不透明度,您将看到两种颜色是如何混合的。我不知道这是否可以解决。

答案 1 :(得分:4)

根据Natxo的回答(谢谢!),我找到了解决方案。而且它也很简单!

知道我们可以通过ColumnHeaderStyle修改后面有另一个DataGridColumnHeader,我只需要设置一个会影响所有DataGridColumnHeader的样式:

<Style TargetType="{x:Type tk:DataGridColumnHeader}">
   <Setter Property="Background" Value="Transparent" />
</Style>