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);
 }
Exemplo n.º 2
0
        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()));
        }