WPF datagrid选中某一行时,如何改变当前行的背景颜色
时间: 2024-12-16 13:19:28 浏览: 44
在WPF DataGrid中,当用户选择某一行时,你可以通过数据模板、样式或者代码的方式来改变选定行的背景颜色。这里提供一种常见的做法:
1. **使用Style**:
创建一个新的`DataGridRowStyle`并设置`SelectedBackground`属性来定义选定行的颜色。将这个style添加到`DataGrid`的资源中:
```xml
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="LightGray" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
```
这里的背景色设为`LightGray`,你可以替换为你想要的效果。
2. **使用Code-behind**:
如果你想在运行时动态地改变背景颜色,可以绑定`IsSelected`状态到`Background`:
```xaml
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#FFD0D0D0" />
</Style.Resources>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="{DynamicResource HighlightBrush}"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
```
然后,在你的`ViewModels`或代码背后处理选中事件,设置`HighlightBrush`为新的颜色。
阅读全文