C#将对象转换为System.Drawing.Color

时间:2017-09-19 18:10:28

标签: c# casting system.drawing.color

我正在尝试将从注册表项中读取的颜色设置转换为System.Drawing.Color。我正在将从注册表返回的对象转换为System.Drawing.Color,遵循以下文章:Convert OBJECT to System.Drawing.Color

System.Drawing.Color color = (System.Drawing.Color)result;

以下是我作为对象获取的这些注册表值的几个示例:

Type     Data
REG_SZ   Color [Olive]
REG_SZ   Color [A=255, R=255, G=128, B=128]

将第一个注册表项强制转换为System.Drawing.Color可以正常工作,但是在转换第二个键时,我得到一个"指定的强制转换无效"错误。能够将这两个键转换为System.Drawing.Color?

的最佳方法是什么?

编辑:我认为解决这个问题的最简单方法是在写入注册表时,我将Color转换为ARGB(int32),当我读取它时,我可以使用{{ 1}}(除非有其他解决方案,我完全不知道)。

1 个答案:

答案 0 :(得分:1)

您从注册表中获得的内容可能是一个字符串,因此请使用此page建议的ColorConverter类

以下是示例代码:

Color regColor = (Color)ColorConverter.ConvertFromString((string)result);