【问题标题】:How to make WPF DataGrid Column Header transparent如何使 WPF DataGrid 列标题透明
【发布时间】:2010-02-01 20:51:02
【问题描述】:

我正在尝试使我的 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>

有了这段代码,好像是默认刷机了。

我错过了什么?

【问题讨论】:

    标签: wpf datagrid styles wpftoolkit


    【解决方案1】:

    我使用 Snoop 来查看正在发生的事情。似乎总是在您可以修改的后面创建另一个 DataGridColumnHeader ,并且它不受样式更改的影响。当您设置透明背景时,实际上已正确应用,因此您看到的是后面的幽灵标题(具有通常的灰色背景)。

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

    【讨论】:

    • 嗯,这很有趣。我自己不能使用 Snoop,由于某种原因它不适用于我的应用程序。
    • 他,他,我必须承认我没有尝试你的解决方案。我想为单个数据网格解决它,这似乎是不可能的。很高兴为您提供帮助!
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-01-31
      • 2011-01-28
      • 2011-09-20
      • 2010-11-07
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      相关资源
      最近更新 更多