c# - 将 OBJECT 转换为 System.Drawing.Color

标签 c# .net colors

我知道在 C# 中有很多方法可以转换颜色,从将字符串转换为颜色值、HTML 转换,甚至 XNA 框架;但是,我有一个返回 System.Drawing.Color 类型的对象;但由于它是一个“对象”,而不是“颜色”,我似乎无法在其上使用正常的颜色命令。

public void SetPropertyValue(string propertyName, object value)
    {
        _PropertyValues[propertyName] = value;
        Console.WriteLine("Setting Property: {0}={1}", propertyName, value);
    }

以上是用户在 C# 中更改属性 Grid 上的值时发生的情况。结果如下:

已知名称

Setting Property: Color=Color [DimGray]

自定义颜色

Setting Property: Color=Color [A=255, R=255, G=255, B=128]

系统颜色

Setting Property: Color=Color [ControlText]

我想获取其中的值,并将其实际转换为一种颜色,以便我可以将其保存在之前在程序中创建的 defaultColor 变量中。

但是,由于它是一个对象,而不是实际的“System.Drawing.Color”,我不能使用类似的东西:

.ToKnownColor()

.ToArgb()

.ToName()

等等。

我知道必须有一种方法可以将对象转换为实际颜色。我执行 value.GetType() 并返回 System.Drawing.Color,因此系统知道它是一种颜色,但对于我来说我似乎无法操纵它。

我还不是 C# 专家,如果这听起来很基础,我很抱歉,但我仍然需要一些帮助。

最佳答案

该对象实际上是一个Color,它只是被一个对象引用所引用。因此,您需要做的就是将其转换为一种颜色。

Color myColor = (Color)value;
// now you can do all color operations on myColor

关于c# - 将 OBJECT 转换为 System.Drawing.Color,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5705050/

相关文章:

c# - 大拇指在线角点上不会重新定位点

.net - Infragistics、Telerik 或 devexpress .. 哪一个比其他更好?

c# - Ninject 功能 (WhenInjectedInto) 等同于 Windsor

Python matplotlib barbs/quiver 将颜色映射到不同的值集

r - 在 R 中将数字矩阵转换为颜色矩阵

c# - 如何在 C# 中生成 "system modal dialog"?

javascript - 使用或不使用正则表达式在 C# 中查找并替换多个字符串

c# - 带有 SSL 流的 UDP

.net - 使用 .NET 访问音频/视频元数据

css - 相对于其他浏览器修复 chrome 颜色,反之亦然