前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SilverLight ColorTool

SilverLight ColorTool

作者头像
MJ.Zhou
发布2022-05-07 16:01:36
3660
发布2022-05-07 16:01:36
举报
文章被收录于专栏:.NET开发那点事.NET开发那点事
代码语言:javascript
复制
public class ColorTool
    {
        /// <summary>
        /// 从ARGB转换
        /// </summary>
        /// <param name="color"></param>
        /// <returns></returns>
        public static SolidColorBrush FromArgb(string color)
        {
            int[] a = new int[4];
            int[] b = new int[8];
            string rg1 = "#[a-fA-F0-9]{8}";
            Regex r1 = new Regex(rg1);
            if (r1.IsMatch(color))
            {
                for (int i = 0; i < 8; i++)
                {
                    switch (color.Substring(i + 1, 1))
                    {
                        case "a":
                        case "A": b[i] = 10; break;
                        case "b":
                        case "B": b[i] = 11; break;
                        case "c":
                        case "C": b[i] = 12; break;
                        case "d":
                        case "D": b[i] = 13; break;
                        case "e":
                        case "E": b[i] = 14; break;
                        case "f":
                        case "F": b[i] = 15; break;
                        default: b[i] = int.Parse(color.Substring(i + 1, 1)); break;
                    }
                }
            }
            else
            {
                string rg2 = @"^[A-Fa-f0-9]{8}";
                Regex r2 = new Regex(rg2);
                if (r2.IsMatch(color))
                {
                    for (int i = 0; i < 8; i++)
                    {
                        switch (color.Substring(i, 1))
                        {
                            case "a":
                            case "A": b[i] = 10; break;
                            case "b":
                            case "B": b[i] = 11; break;
                            case "c":
                            case "C": b[i] = 12; break;
                            case "d":
                            case "D": b[i] = 13; break;
                            case "e":
                            case "E": b[i] = 14; break;
                            case "f":
                            case "F": b[i] = 15; break;
                            default: b[i] = int.Parse(color.Substring(i, 1)); break;
                        }
                    }
                }
            }
            a[0] = b[0] * 16 + b[1];
            a[1] = b[2] * 16 + b[3];
            a[2] = b[4] * 16 + b[5];
            a[3] = b[6] * 16 + b[7];
            return (new SolidColorBrush(Color.FromArgb((byte)a[0], (byte)a[1], (byte)a[2], (byte)a[3])));
        }
        /// <summary>
        /// 从Color转换
        /// </summary>
        /// <param name="color"></param>
        /// <returns></returns>
        public static SolidColorBrush FromColor(Color color)
        {
            return new SolidColorBrush(color);
        }
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档