比较两个Color对象

这个C#,VS2010和.NET 4.0。 我正在尝试比较两个System.Drawing.Color对象。

mStartColor.ToArgb()的值是16777215

Color.Transparent.ToArgb()的值是16777215

mStartColor Color.Transparent值为True

如何为Color对象实现等式?

编辑

感谢大家。 我得到了答案,虽然这对我没有多大意义(请参阅我对蒂姆和戴夫的答案的评论)。 我将蒂姆的post标记为答案,他是第一个回复的人,但戴夫的回答同样有用。

请务必先阅读文档 :

“要仅根据其ARGB值比较颜色,您应该使用ToArgb方法。这是因为Equals和Equality成员使用的不仅仅是颜色的ARGB值来确定等效性。例如,Black和FromArgb(0,0, 0)不被认为是相等的,因为黑色是命名颜色而FromArgb(0,0,0)不是“

颜色结构包含更多数据,而不仅仅是实际的颜色信息,例如

 Color [Transparent] R: 255 G: 255 B: 255 A: 0 IsKnownColor: True IsEmpty: False IsNamedColor: True IsSystemColor: False Name: Transparent 

Color.FromArgb(16777215)

 Color [A=0, R=255, G=255, B=255] R: 255 G: 255 B: 255 A: 0 IsKnownColor: False IsEmpty: False IsNamedColor: False IsSystemColor: False Name: ffffff 

等于比较将使用所有这些来确定平等。 你应该是你已经建议的,并使用:

 Color.Transparent.ToArgb().Equals(mStartColor.ToArgb()) 

您可以编写一个扩展方法来比较两个颜色对象的ARGB值,如果它们相同则返回true。

以下是有关扩展方法的MSDN文档 。