WPF:DataGridCell覆盖行样式颜色

时间:2014-05-05 18:33:59

标签: c# wpf

我有一个数据网格。我希望列的背景之一是不同的颜色。我希望细胞背景完全是深蓝色或黑色。不是红色+黑色或红色+深蓝色的组合。我可以做些什么来覆盖特定列的行颜色吗?

<ResourceDictionary> 
<Style TargetType="DataGridRow">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Side}" Value="SELL">
                    <Setter Property="Background" Value="Red"></Setter>
                    <Setter Property="Foreground" Value="White"></Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>

    <Style x:Key="ColumnBeThisColor" TargetType="{x:Type DataGridCell}">
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="HorizontalAlignment" Value="Right"/>
        <Setter Property="Background" Value="Black"/>
        <Style.Triggers>
            <DataTrigger Binding="{Binding ColumnA}" Value="True">
                <Setter Property="Background" Value="DarkBlue" />
                <Setter Property="Foreground" Value="White" />
            </DataTrigger>
            <DataTrigger Binding="{Binding ColumnA}" Value="False">
                <Setter Property="Background" Value="Black" />
                <Setter Property="Foreground" Value="White" />
            </DataTrigger>           
        </Style.Triggers>
    </Style>
</ResourceDictionary>



<DataGridTextColumn Header="ColumnOneColor" CellStyle="{StaticResource ColumnBeThisColor}" Width="60" Binding="{Binding Path=ThisColumn}"/>

这很好。但是文字没有点亮enter image description here

这与右侧对齐,但背景不是完全黑色enter image description here

另外 - 我怎么没有红色边框?

1 个答案:

答案 0 :(得分:1)

我的样式是targettype是datagridcell。我有另一种样式,其中targettype是textblock。我相应地设置了cellstyle和elementstyle。