DataGridRow后台属性的默认值
本文关键字:默认值 属性 后台 DataGridRow | 更新日期: 2023-09-27 18:15:48
我在摆弄DataGridRow
的Background
时发现了一些奇怪的东西。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
吗?
这是因为你比较的是画笔,而不是颜色。SolidColorBrush
和Brush
覆盖Equals
方法,因此你通过参考比较它,一个刷子并不总是等于另一个相同颜色的刷子。控件将使用Windows中定义的SystemColors
作为默认值。要进行比较你需要知道它们都是SolidColorBrush
然后比较SolidColorBrush.Color