zoukankan      html  css  js  c++  java
  • 2018-9-30-C#-winforms-输入颜色转换颜色名

    title author date CreateTime categories
    C# winforms 输入颜色转换颜色名
    lindexi
    2018-09-30 18:27:49 +0800
    2018-07-09 14:40:23 +0800
    C#

    本文告诉大家如何输入颜色,如0xFFFF8000转换为 Orange 在 winforms 程序

    可以使用下面代码转换

        public static class HexColorTranslator
        {
            private static Dictionary<string, string> _hex2Name;
    
            private static Dictionary<string, string> Hex2Name
            {
                get
                {
                    if (_hex2Name == null)
                    {
                        _hex2Name = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
                        foreach (KnownColor ce in typeof(KnownColor).GetEnumValues())
                        {
                            var name = ce.ToString();
                            var color = Color.FromKnownColor(ce);
                            var hex = HexConverter(color);
                            _hex2Name[hex] = name;
                        }
                    }
    
                    return _hex2Name;
                }
            }
    
            private static string HexConverter(Color c)
            {
                return c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2");
            }
    
            public static string GetKnownColorFromHex(string hex)
            {
                hex = hex.TrimStart('#');
                if (Hex2Name.TryGetValue(hex, out var result))
                {
                    return result;
                }
    
                return "???";
            }
        }
    

    调用的方式是传入颜色

    HexColorTranslator.GetKnownColorFromHex("#FFFF8000");

    参见: https://stackoverflow.com/a/51238017/6116637

  • 相关阅读:
    酒店预定系统
    毕业论文管理系统 ——总体设计
    毕业论文管理系统
    毕业管理系统——面向对象方法 项目前期
    项目前期
    5/23用户故事和backlog
    5/18
    4.8
    4.3
    第四章 需求分析
  • 原文地址:https://www.cnblogs.com/lindexi/p/12085969.html
Copyright © 2011-2022 走看看