private static void InitializeHtmlSysColorTable() { s_htmlSysColorTable = new Hashtable(26); s_htmlSysColorTable["activeborder"] = ColorUtil.FromKnownColor(KnownColor.ActiveBorder); s_htmlSysColorTable["activecaption"] = ColorUtil.FromKnownColor(KnownColor.ActiveCaption); s_htmlSysColorTable["appworkspace"] = ColorUtil.FromKnownColor(KnownColor.AppWorkspace); s_htmlSysColorTable["background"] = ColorUtil.FromKnownColor(KnownColor.Desktop); s_htmlSysColorTable["buttonface"] = ColorUtil.FromKnownColor(KnownColor.Control); s_htmlSysColorTable["buttonhighlight"] = ColorUtil.FromKnownColor(KnownColor.ControlLightLight); s_htmlSysColorTable["buttonshadow"] = ColorUtil.FromKnownColor(KnownColor.ControlDark); s_htmlSysColorTable["buttontext"] = ColorUtil.FromKnownColor(KnownColor.ControlText); s_htmlSysColorTable["captiontext"] = ColorUtil.FromKnownColor(KnownColor.ActiveCaptionText); s_htmlSysColorTable["graytext"] = ColorUtil.FromKnownColor(KnownColor.GrayText); s_htmlSysColorTable["highlight"] = ColorUtil.FromKnownColor(KnownColor.Highlight); s_htmlSysColorTable["highlighttext"] = ColorUtil.FromKnownColor(KnownColor.HighlightText); s_htmlSysColorTable["inactiveborder"] = ColorUtil.FromKnownColor(KnownColor.InactiveBorder); s_htmlSysColorTable["inactivecaption"] = ColorUtil.FromKnownColor(KnownColor.InactiveCaption); s_htmlSysColorTable["inactivecaptiontext"] = ColorUtil.FromKnownColor(KnownColor.InactiveCaptionText); s_htmlSysColorTable["infobackground"] = ColorUtil.FromKnownColor(KnownColor.Info); s_htmlSysColorTable["infotext"] = ColorUtil.FromKnownColor(KnownColor.InfoText); s_htmlSysColorTable["menu"] = ColorUtil.FromKnownColor(KnownColor.Menu); s_htmlSysColorTable["menutext"] = ColorUtil.FromKnownColor(KnownColor.MenuText); s_htmlSysColorTable["scrollbar"] = ColorUtil.FromKnownColor(KnownColor.ScrollBar); s_htmlSysColorTable["threeddarkshadow"] = ColorUtil.FromKnownColor(KnownColor.ControlDarkDark); s_htmlSysColorTable["threedface"] = ColorUtil.FromKnownColor(KnownColor.Control); s_htmlSysColorTable["threedhighlight"] = ColorUtil.FromKnownColor(KnownColor.ControlLight); s_htmlSysColorTable["threedlightshadow"] = ColorUtil.FromKnownColor(KnownColor.ControlLightLight); s_htmlSysColorTable["window"] = ColorUtil.FromKnownColor(KnownColor.Window); s_htmlSysColorTable["windowframe"] = ColorUtil.FromKnownColor(KnownColor.WindowFrame); s_htmlSysColorTable["windowtext"] = ColorUtil.FromKnownColor(KnownColor.WindowText); }
public static Color ArgbToKnownColor(int targetARGB) { EnsureColorTable(); for (int index = 0; index < s_colorTable.Length; ++index) { int argb = s_colorTable[index]; if (argb == targetARGB) { Color color = ColorUtil.FromKnownColor((KnownColor)index); if (!ColorUtil.IsSystemColor(color)) { return(color); } } } return(Color.FromArgb(targetARGB)); }
/// <summary> /// Translates an Ole color value to a GDI+ <see cref='Color'/>. /// </summary> public static Color FromOle(int oleColor) { // WARNING!!! WARNING!!! WARNING!!! WARNING!!! // WARNING!!! WARNING!!! WARNING!!! WARNING!!! // We must never have another method called ToOle() with a different signature. // This is so that we can push into the runtime a custom marshaller for OLE_COLOR to Color. switch (oleColor) { case unchecked ((int)0x8000000A): return(ColorUtil.FromKnownColor(KnownColor.ActiveBorder)); case unchecked ((int)0x80000002): return(ColorUtil.FromKnownColor(KnownColor.ActiveCaption)); case unchecked ((int)0x80000009): return(ColorUtil.FromKnownColor(KnownColor.ActiveCaptionText)); case unchecked ((int)0x8000000C): return(ColorUtil.FromKnownColor(KnownColor.AppWorkspace)); case unchecked ((int)0x8000000F): return(ColorUtil.FromKnownColor(KnownColor.Control)); case unchecked ((int)0x80000010): return(ColorUtil.FromKnownColor(KnownColor.ControlDark)); case unchecked ((int)0x80000015): return(ColorUtil.FromKnownColor(KnownColor.ControlDarkDark)); case unchecked ((int)0x80000016): return(ColorUtil.FromKnownColor(KnownColor.ControlLight)); case unchecked ((int)0x80000014): return(ColorUtil.FromKnownColor(KnownColor.ControlLightLight)); case unchecked ((int)0x80000012): return(ColorUtil.FromKnownColor(KnownColor.ControlText)); case unchecked ((int)0x80000001): return(ColorUtil.FromKnownColor(KnownColor.Desktop)); case unchecked ((int)0x8000001B): return(ColorUtil.FromKnownColor(KnownColor.GradientActiveCaption)); case unchecked ((int)0x8000001C): return(ColorUtil.FromKnownColor(KnownColor.GradientInactiveCaption)); case unchecked ((int)0x80000011): return(ColorUtil.FromKnownColor(KnownColor.GrayText)); case unchecked ((int)0x8000000D): return(ColorUtil.FromKnownColor(KnownColor.Highlight)); case unchecked ((int)0x8000000E): return(ColorUtil.FromKnownColor(KnownColor.HighlightText)); case unchecked ((int)0x8000001A): return(ColorUtil.FromKnownColor(KnownColor.HotTrack)); case unchecked ((int)0x8000000B): return(ColorUtil.FromKnownColor(KnownColor.InactiveBorder)); case unchecked ((int)0x80000003): return(ColorUtil.FromKnownColor(KnownColor.InactiveCaption)); case unchecked ((int)0x80000013): return(ColorUtil.FromKnownColor(KnownColor.InactiveCaptionText)); case unchecked ((int)0x80000018): return(ColorUtil.FromKnownColor(KnownColor.Info)); case unchecked ((int)0x80000017): return(ColorUtil.FromKnownColor(KnownColor.InfoText)); case unchecked ((int)0x80000004): return(ColorUtil.FromKnownColor(KnownColor.Menu)); case unchecked ((int)0x8000001E): return(ColorUtil.FromKnownColor(KnownColor.MenuBar)); case unchecked ((int)0x8000001D): return(ColorUtil.FromKnownColor(KnownColor.MenuHighlight)); case unchecked ((int)0x80000007): return(ColorUtil.FromKnownColor(KnownColor.MenuText)); case unchecked ((int)0x80000000): return(ColorUtil.FromKnownColor(KnownColor.ScrollBar)); case unchecked ((int)0x80000005): return(ColorUtil.FromKnownColor(KnownColor.Window)); case unchecked ((int)0x80000006): return(ColorUtil.FromKnownColor(KnownColor.WindowFrame)); case unchecked ((int)0x80000008): return(ColorUtil.FromKnownColor(KnownColor.WindowText)); } Color color = Color.FromArgb((byte)((oleColor >> Win32RedShift) & 0xFF), (byte)((oleColor >> Win32GreenShift) & 0xFF), (byte)((oleColor >> Win32BlueShift) & 0xFF)); return(KnownColorTable.ArgbToKnownColor(color.ToArgb())); }