2010-02-01 226 views
1

我想讓我的WPF Datagrid的列標題是透明的。如何使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> 

有了這段代碼,它似乎採用了默認的刷子。

我錯過了什麼?

回答

4

從Natxo回答(謝謝!),我找到了解決方案。它也是一個簡單的!

知道,有一個我們可以通過修改ColumnHeaderStyle背後還有DataGridColumnHeader,我不得不設置樣式,將影響所有DataGridColumnHeader

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

我用Snoop來看看發生了什麼。看起來,另一個DataGridColumnHeader總是在可修改的DataGridColumnHeader之後創建,並且它不受樣式更改的影響。當您設置透明背景時,實際上已經正確應用了,所以您看到的是背後的鬼頭(具有通常的灰色背景)。

如果您應用彩色背景並使用不透明度播放,您將看到兩種顏色是如何混合的。我不知道這是否可以解決。

+0

嗯,這很有意思。我自己無法使用Snoop,出於某種原因,它不適用於我的應用程序。 – joerage 2010-02-03 18:20:23

+0

他,他,我必須承認我沒有嘗試你的解決方案。我想爲個別Datagrids解決這個問題,這似乎是不可能的。樂意效勞! – Natxo 2010-02-04 09:12:39