DataGridRow Background属性的默认值

时间:2013-05-28 14:45:58

标签: c# wpf datagrid

我正在与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吗?

1 个答案:

答案 0 :(得分:1)

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