WPF DataGrid选择的行的RowStyle不改变背景和前景颜色。

18 浏览
0 Comments

WPF DataGrid选择的行的RowStyle不改变背景和前景颜色。

我在Windows 7上使用Visual Studio 2012。 我需要知道为什么对于网格的选定行,以下样式在背景和前景颜色方面不起作用,但对于其他属性(如BorderBrush和BorderThickness等)却完全正常?尽管我可以看到在鼠标悬停在网格行上时它们的变化。


这是我在网格上使用的方式。


我强调要知道“为什么”,而不是解决问题,因为如果我使用网格单元样式而不是行样式,我已经有了解决问题的方法,如下所示:


0
0 Comments

问题出现的原因是在DataGrid的行级别中存在具有优先级的属性,导致无法更改选定行的背景和前景颜色。

解决方法是在DataGrid的行级别中移除这些属性。

以下是解决方法的示例代码:


    
        
    

移除后的代码如下所示:


    
        
    

通过移除行级别的属性,可以解决WPF DataGrid选定行背景和前景颜色不变的问题。

0
0 Comments

问题的出现原因是在默认的DataGridCell样式中,有一个触发器,当IsSelected属性为True时,会改变背景颜色和前景颜色。但是如果在DataGridRow中写入触发器,它只会应用于在可视树中位于DataGridCell之前的元素。

解决方法之一是在DataGridCell样式中编写触发器来改变背景和前景。另一种解决方法是从样式中删除默认触发器。

以下是解决方法的代码示例:


通过在DataGridCell样式中编写触发器,可以解决选中行时背景和前景颜色未改变的问题。另外一种方法是从样式中删除默认触发器。

希望以上内容能帮助您解决(WPF DataGrid RowStyle for selected row not changing the background and foreground color)这个问题。

0