选择行时设置文本WPF DataGrid行的颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选择行时设置文本WPF DataGrid行的颜色相关的知识,希望对你有一定的参考价值。

我正在尝试更改WPF数据网格中所选行中的文本颜色。默认情况下它会更改文本颜色白色有没有办法使用样式/触发器等来改变它?

提前致谢!

答案

试试这个

<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}" >
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Foreground" Value="Green"/>
        </Trigger>
    </Style.Triggers>
</Style>

然后你可以在你认为合适的列中使用它

<DataGrid ...>
    <DataGrid.Columns>
        <DataGridTextColumn CellStyle="{StaticResource DataGridCellStyle}" .../>

如果要将其应用于所有列,可以将样式的x:键更改为

<Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}" >
另一答案

如果要完全删除Foreground颜色更改(例如,如果DataGrid对于不同的行具有不同的颜色),则可以执行以下操作:

    <Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource {x:Type DataGridCell}}">
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource Self}, Path=Foreground}" />
            </Trigger>
        </Style.Triggers>
    </Style>

如果要为此样式指定名称(如上一个答案中所示),请添加x:Key。

以上是关于选择行时设置文本WPF DataGrid行的颜色的主要内容,如果未能解决你的问题,请参考以下文章

WPF 修改DataGrid选中行时的颜色

选择后更改整个数据网格行的背景颜色

在wpf datagrid中,想要根据一个条件来改变datagrid行的背景颜色

WPF-改变Datagrid选中行的颜色

WPF:DataGrid.RowDetailsTemplate:仅在选择单行时显示详细信息?

WPF DataGrid 改变当前选中行颜色 是那种改变后不会再变回来的!用C# 代码实现