WPF DataGridRow自定义样式在Datagrid失去焦点时被解除



在具有多个数据网格的WPF表单的场景中,我一直(不成功地)尝试有条件地更改特定行的(背景)颜色,该效果将向用户表示光学可检测的情况。

在试验期间,虽然我已经能够通过使用数据触发器正确设置(背景)颜色或者通过处理LoadingRow事件,当网格控件失去焦点时,行样式将被取消。

正如一些人建议的那样,绕过这个的唯一方法是使用系统。HighlightBrush这确实有效:尽管失去了焦点,但感兴趣的行仍保持其风格。

如果我遵循上述技术,是否有一种方法可以改变HighlightBrush的颜色,而不是标准系统默认的浅蓝色?

HighlightBrushKeyInactiveSelectionHighlightBrushKey定义自己的笔刷,并将它们放入DataGridResources字典中:

<DataGrid ...>
<DataGrid.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
</DataGrid.Resources>
</DataGrid>

相关内容

  • 没有找到相关文章

最新更新