C# 将对象转换为System.Drawing.Color
我知道有很多方法可以在C#中转换颜色,从字符串到颜色值的转换,HTML转换,甚至XNA框架;但是,我有一个返回System.Drawing.Color类型的对象;但由于它是一个“对象”,而不是一个“颜色”,我似乎不能在它上面使用普通的颜色命令C# 将对象转换为System.Drawing.Color,c#,.net,colors,C#,.net,Colors,我知道有很多方法可以在C#中转换颜色,从字符串到颜色值的转换,HTML转换,甚至XNA框架;但是,我有一个返回System.Drawing.Color类型的对象;但由于它是一个“对象”,而不是一个“颜色”,我似乎不能在它上面使用普通的颜色命令 public void SetPropertyValue(string propertyName, object value) { _PropertyValues[propertyName] = value; Con
public void SetPropertyValue(string propertyName, object value)
{
_PropertyValues[propertyName] = value;
Console.WriteLine("Setting Property: {0}={1}", propertyName, value);
}
上面是用户在C#中更改属性网格上的值时发生的情况。结果如下:
已知名称
设置属性:颜色=颜色
[灰色]
自定义颜色
设置属性:Color=Color[A=255,R=255,G=255,B=128]
系统颜色
设置属性:颜色=颜色[ControlText]
我想把它的值转换成一种颜色,这样我就可以把它放在一个defaultColor变量中,这个变量以前是在程序中创建的
但是,由于它是一个对象而不是实际的“System.Drawing.Color”,因此我不能使用以下内容:
.ToKnownColor()
.ToArgb()
.ToName()
等等
我知道必须有一种方法将对象转换为实际颜色。我执行value.GetType(),它返回System.Drawing.Color,因此系统知道它是一种颜色,但就我而言,我似乎无法操纵它
我还不是C#方面的专家,如果这听起来很简单,我很抱歉,但我仍然需要一些帮助。将其转换为
颜色
:
var effectiveColor = (System.Drawing.Color)value;
括号中的这个东西是一个,你告诉编译器你知道得更好,变量的实际类型是另一种类型。对象实际上是一种颜色,它只是被一个对象引用。所以你所需要做的就是把它变成一种颜色
Color myColor = (Color)value;
// now you can do all color operations on myColor
您应该能够将
对象
强制转换为颜色
,如果仅此而已:
Color color = (Color)value;
太棒了,谢谢你的快速回复。对不起,有时候我真是个傻瓜:(.顺便问一下,为什么这个能起作用?我经常没有看到这样的注释,所以我不太清楚为什么会起作用。哈哈,非常感谢你的回答;我喜欢你描述它为什么能起作用的方式。这会很方便的。:)非常感谢;说到C,我还是个新手(有些事情我还不太清楚:)