在.Net Compact Framework中将OLE颜色转换为System.Drawing.Color

时间:2013-06-26 13:56:29

标签: c# colors compact-framework type-conversion

我从第三方系统收到OLE颜色,我需要将其转换为System.Drawing.Color

在完整的.Net Framework上,我可以使用ColorTranslator.FromOle(int oleColor)

执行此转换,但Compact框架中不存在此转换。知道如何进行这种转换吗?

由于


以下是答案。

int oleColor = 16711680;   // Blue
Color argbColor;

argbColor = Color.FromArgb((byte)(oleColor & 0xff), (byte)((oleColor >> 8) & 0xff), (byte)((oleColor >> 0x10) & 0xff));

1 个答案:

答案 0 :(得分:1)

您可以下载Reflector的手性版本并检查ColorTranslator.FromOle方法的代码。

基本上,有一个很大的开关案例块,每个案例都使用Color.FromKnownColor方法返回一个Color结构。

screenshot