DataGridRow后台属性的默认值

本文关键字:默认值 属性 后台 DataGridRow | 更新日期: 2023-09-27 18:15:48

我在摆弄DataGridRowBackground时发现了一些奇怪的东西。
DataGridRow的背景色为白色,如果您打印它,您将得到以下输出:

System.Console.WriteLine(row.Background.ToString());
-----OUTPUT-----
#FFFFFFFF

如果您打印Brushes.White,您将得到相同的结果:

System.Console.WriteLine(Brushes.White);
-----OUTPUT-----
#FFFFFFFF

现在,当比较它们时:

System.Console.WriteLine(Brushes.White.Equals(row.Background));
-----OUTPUT-----
False

它说它们是不同的,这很奇怪,因为它们都是SolidColorBrush#FFFFFFFF的值。

DataGridRow不使用Brushes.White有什么特别的原因吗?
是预定义的SolidBrushColor吗?

DataGridRow后台属性的默认值

这是因为你比较的是画笔,而不是颜色。SolidColorBrushBrush覆盖Equals方法,因此你通过参考比较它,一个刷子并不总是等于另一个相同颜色的刷子。控件将使用Windows中定义的SystemColors作为默认值。要进行比较你需要知道它们都是SolidColorBrush然后比较SolidColorBrush.Color