如何测试 aSystem.Drawing.Color
和 a是否System.Windows.Media.Color
描述相同的颜色?
我试过了
colour1 == colour2
但我得到一个错误
运算符“==”不能应用于“System.Drawing.Color”和“System.Windows.Media.Color”类型的操作数
您有 2 个选项:
从一种类型转换为另一种类型,这在此处介绍,然后使用 '==' 运算符。
比较各个组件。由于它们都具有 R、G、B、A 属性作为字节,您可以简单地执行以下操作:
bool ColorsEqual (System.Drawing.Color c1, System.Windows.Media.Color c2)
{
return c1.R == c2.R && c1.G == c2.G
&& c1.B == c2.B && c1.A == c2.A;
}
您可以对 System.Drawing.Color 进行扩展方法,将其转换为 System.Windows.Media.Color,然后在 System.Windows.Media.Color 类型上进行比较:
public static System.Windows.Media.Color ToMediaColor(this System.Drawing.Color color)
{
return System.Windows.Media.Color.FromArgb(color.A, color.R, color.G, color.B);
}