我正在尝试使我的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>
使用此代码,它似乎采用默认画笔。
我错过了什么?
答案 0 :(得分:4)
我用Snoop来看看发生了什么。似乎另一个DataGridColumnHeader总是在您可以修改的那个之后创建,并且它不受样式更改的影响。当您设置透明背景时,实际上正在应用,所以您看到的是后面的鬼头(具有通常的灰色背景)。
如果您应用彩色背景并使用不透明度,您将看到两种颜色是如何混合的。我不知道这是否可以解决。
答案 1 :(得分:4)
根据Natxo的回答(谢谢!),我找到了解决方案。而且它也很简单!
知道我们可以通过ColumnHeaderStyle
修改后面有另一个DataGridColumnHeader,我只需要设置一个会影响所有DataGridColumnHeader
的样式:
<Style TargetType="{x:Type tk:DataGridColumnHeader}">
<Setter Property="Background" Value="Transparent" />
</Style>