Exemplo n.º 1
0
        internal static Color RdlStringToColor(string value)
        {
            if (value[0] == '#')
            {
                return(RgbStringToColor(value));
            }
            Color result = FromName(value);

            if (!result.IsKnownColor)
            {
                throw new ArgumentException(SRErrors.InvalidColor(value));
            }
            return(result);
        }
Exemplo n.º 2
0
        private static Color RgbStringToColor(string value)
        {
            byte alpha = byte.MaxValue;

            if (value == "#00ffffff")
            {
                return(Color.Transparent);
            }
            if (value == "#00000000")
            {
                return(Color.Empty);
            }
            bool flag = true;

            if ((value.Length != 7 && value.Length != 9) || value[0] != '#')
            {
                flag = false;
            }
            else
            {
                string text = "abcdefABCDEF";
                for (int i = 1; i < value.Length; i++)
                {
                    if (!char.IsDigit(value[i]) && -1 == text.IndexOf(value[i]))
                    {
                        flag = false;
                        break;
                    }
                }
            }
            if (flag)
            {
                int num = 1;
                if (value.Length == 9)
                {
                    alpha = Convert.ToByte(value.Substring(num, 2), 16);
                    num  += 2;
                }
                byte red   = Convert.ToByte(value.Substring(num, 2), 16);
                byte green = Convert.ToByte(value.Substring(num + 2, 2), 16);
                byte blue  = Convert.ToByte(value.Substring(num + 4, 2), 16);
                return(Color.FromArgb(alpha, red, green, blue));
            }
            throw new ArgumentException(SRErrors.InvalidColor(value));
        }