2015-02-05 86 views
0

我想更改DataGrid中DataGridCell的前景的颜色,当背景不是白色时。所以我写了这个xaml:如何根据背景更改WPF DataGridCell的前景?

<Style TargetType="{x:Type DataGridCell}"> 
    <Setter Property="Foreground" 
      Value="White" /> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding Background, RelativeSource={RelativeSource Self}}" 
        Value="Transparent"> 
      <Setter Property="Foreground" 
        Value="Black" /> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

使用转换器来测试输入和绑定,我可以看到绑定生成的正确值。但是,二传手似乎不会起火。

EDIT1:其实,datagridcell的文本块的背景被通过转换器设置

+1

你如何设置单元格背景颜色? – 2015-02-05 17:02:57

+0

更新的问题与答案 – 2015-02-05 17:06:05

+0

你的'透明'是一样的吗?即'rgba(0,0,0,0)'和'rgba(255,255,255,0)'都是透明的 – paul 2015-02-05 17:08:27

回答

0

我设置TextBlock的背景里:我通过一个转换器

EDIT2设置单元格背景颜色DataGridCell通过转换器。所以DataGridCell的背景并没有真正改变,这就是我所要的。