WPF-改变Datagrid选中行的颜色

Posted 奥奥没有利

tags:

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

WPF里面,DataGrid自带的选中行颜色

#FFF0F0F0

深蓝色,真的非常丑,尤其是当行高很宽的时候,见下图。

所以,忍不了必须得修改颜色。

 

其中一种方式如下,

 1         <Style TargetType="{x:Type DataGridCell}" >
 2             <Setter Property="Background" Value="White"/>
 3             <Style.Triggers>
 4                 <Trigger Property="IsMouseOver" Value="True">
 5                     <Setter Property="Background" Value="LightGray"/>
 6                     <Setter Property="BorderBrush" Value="LightGray"/>
 7                 </Trigger>
 8                 <Trigger Property="IsSelected" Value="True">
 9                     <Setter Property="Background" Value="#FFF8DC"/>
10                     <Setter Property="BorderBrush" Value="#FFF8DC"/>
11                 </Trigger>
12             </Style.Triggers>
13         </Style>    

这里面有要注意的点。

第一,【BorderBrush】不可以少,否则会存在很丑的边框,当然没有强迫症的可以不考虑。

以下这两行是不可以少的。

1                     <Setter Property="BorderBrush" Value="LightGray"/>
2                     <Setter Property="BorderBrush" Value="#FFF8DC"/>

缺少情况见下图,很像被瞄了边框,而且对比度太高,辣眼睛。

第二,以下是设置鼠标悬浮的颜色。

1                 <Trigger Property="IsMouseOver" Value="True">
2                     <Setter Property="Background" Value="LightGray"/>
3                     <Setter Property="BorderBrush" Value="LightGray"/>
4                 </Trigger>

第三,一下是设置鼠标点击后的颜色。

1                 <Trigger Property="IsSelected" Value="True">
2                     <Setter Property="Background" Value="#FFF8DC"/>
3                     <Setter Property="BorderBrush" Value="#FFF8DC"/>
4                 </Trigger>

最后,欣赏一下完成品吧。

 

以上是关于WPF-改变Datagrid选中行的颜色的主要内容,如果未能解决你的问题,请参考以下文章

wpf datagrid 样式怎么设置默认选中行的颜色

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

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

WPF,通过修改dataGrid的cell的style,改变选中行失去焦点时的颜色 4.0可用

wpf datagrid绑定了数据 如果选中多行中怎么获取选中行的某列的值

WPF DataGrid 没有行的概念吗?怎么能拿到选中行的索引? DataGrid.SelectedIndex 返回的值是-1,要怎么拿?