首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较System.Drawing.Color和System.Windows.Media.Color?

如何比较System.Drawing.Color和System.Windows.Media.Color?
EN

Stack Overflow用户
提问于 2013-02-25 10:30:59
回答 3查看 1.3K关注 0票数 0

如何测试System.Drawing.ColorSystem.Windows.Media.Color是否描述相同的颜色?

我试过了

代码语言:javascript
复制
colour1 == colour2

但我犯了个错误

运算符'==‘不能应用于'System.Drawing.Color’和'System.Windows.Media.Color‘类型的操作数

EN

回答 3

Stack Overflow用户

发布于 2013-02-25 10:39:13

你有两个选择:

  1. 从一种类型转换为另一种类型,这是覆盖的这里,然后使用'==‘运算符。
  2. 比较各个组件。由于它们都以字节形式具有R、G、B、A属性,所以您可以简单地这样做: bool ColorsEqual (System.Drawing.Color c1,System.Windows.Media.Color c2) {返回c1.R == c2.R & c1.G == c2.G & c1.B == c2.B && c1.A == c2.A}
票数 2
EN

Stack Overflow用户

发布于 2013-02-25 10:38:48

由于这两种类型没有重载operator==,所以可以获取颜色的字符串值或ARGB值。

代码语言:javascript
复制
System.Drawing.Color c1 = System.Drawing.Color.FromArgb(255,0,0,0);
System.Windows.Media.Color c2 = System.Windows.Media.Color(255,0,0,0);
if(c1.A == c2.A && c1.R == c2.R && ...

看看这里这里

票数 0
EN

Stack Overflow用户

发布于 2013-02-25 10:40:46

您可以为System.Drawing.Color创建一个扩展方法,该方法将转换为System.Windows.Media.Color,然后对System.Windows.Media.Color类型进行比较:

代码语言:javascript
复制
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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15064894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档