[C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改

问题描述

WPF中DataGrid的选中行或选中者单元格,在焦点失去后,颜色会很淡,很不明显,不容易区分。

解决方法

在失去焦点的情况下,如何设置行或单元格与选中的时候颜色一样?

复制代码
<DataGrid.Resources>
    <Style TargetType="DataGridCell">
       <Style.Resources>
          <SolidColorBrush  x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}"  Color="#0078D7"/>
       </Style.Resources>                          
   </Style>
</DataGrid.Resources>

这里需要注意的是,TargetType="DataGridCell",影响的是只是单元格,如果希望影响到行,修改为"DataGridRow"。

这里还遇到另外一个小问题,我们会发现选择单元格或者行时,颜色字体颜色由黑变白,但是失去焦点后颜色又恢复了黑色,我们要怎么处理呢?可以通过控制下面的脚本来控制选中时的颜色。

复制代码
<Style.Triggers>
    <Trigger Property="IsSelected" Value="True">
        <Setter Property="Foreground" Value="White"/>
    </Trigger>
 </Style.Triggers>

完整代码如下:

复制代码
<DataGrid x:Name="xxx">
    <DataGrid.Resources>
       <Style TargetType="DataGridCell">
          <Style.Resources>
             <SolidColorBrush  x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}"  Color="#0078D7"/>
          </Style.Resources>
          <Style.Triggers>
             <Trigger Property="IsSelected" Value="True">
                <Setter Property="Foreground" Value="White"/>
             </Trigger>
          </Style.Triggers>
      </Style>
    </DataGrid.Resources>
...
</DataGrid>

运行效果:

相关推荐
烛阴9 小时前
C#异常概念与try-catch入门
前端·c#
yue00812 小时前
C# Environment类的介绍
开发语言·c#·environment
c#上位机13 小时前
halcon图像去噪—高斯滤波
c#·上位机·halcon·机器视觉
拾七片晚星14 小时前
MateChat工作流引擎实战:复杂任务自动化编排与异常处理
wpf·devui·matechat
神奇的板烧14 小时前
Java泛型不变性引发的类型转换问题及解决方案
java·c#
Aevget14 小时前
界面控件开发包DevExpress v25.1.7更新上线——修复一些小bug
c#·wpf·winform·devexpress·ui开发·用户界面
_oP_i15 小时前
winform与wpf的对比
wpf
她说彩礼65万15 小时前
WPF Converter转换器
wpf
Q1808095116 小时前
手撕BP与CNN:不依赖外源库,探寻神经网络原理
c#
她说彩礼65万16 小时前
C# Thread和Task的区别
wpf