如何设置wpf datagrid控件失去焦点后选中行的样式
时间: 2024-09-30 10:06:41 浏览: 55
WPF 自定义控件库 常用控件封装&常用控件样式重写
5星 · 资源好评率100%
在WPF中,你可以通过定制`DataGrid`的`SelectionChanged`事件以及`CellStyle`属性来设置当Datagrid失去焦点时选中行的样式。以下是步骤:
1. 首先,在XAML中为`DataGrid`添加一个资源样式,通常会创建一个名为`SelectedRowStyle`的ResourceDictionary:
```xml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="DataGridRow" x:Key="SelectedRowStyle">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<!-- 设置选定行的背景色、字体颜色等 -->
<Setter Property="Background" Value="LightBlue"/>
<Setter Property="Foreground" Value="Black"/>
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
```
2. 然后,在需要应用这个样式的`DataGrid`上绑定这个资源:
```xml
<DataGrid Style="{StaticResource SelectedRowStyle}" ... />
```
3. 当`DataGrid`失去焦点时,`IsSelected`属性将变为`False`,触发了`SelectedRowStyle`中的`Trigger`,对应的样式就会应用到未选中的行。
如果你想要在失去焦点时特定的行为发生,比如清空高亮,可以在`LostFocus`事件处理程序中手动清除选中状态:
```csharp
dataGrid.LostFocus += (sender, e) => dataGrid.SelectedItem = null;
```
阅读全文