C# winforms 输入颜色转换颜色名
2023-09-27 14:28:55 时间
本文告诉大家如何输入颜色,如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
我搭建了自己的博客 https://lindexi.gitee.io/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新
如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
相关文章
- C# ASP.NET 优化程序性能、降低内存使用、提高程序运行速度
- SSE图像算法优化系列三十一:Base64编码和解码算法的指令集优化(C#自带函数的3到4倍速度)。
- C#将字母转换为全部大写或小写
- C# 对象与JSON串互相转换
- C#中字符转换问题详解
- c# yield关键字原理
- Mysql的 时间戳转换 和 c# 的时间戳转换 (以秒来进行转换,非毫秒,主要是mysql不能存毫秒)
- C# 数值进制转换
- OpenCvSharp (C# OpenCV) 指针方法读取和修改图像像素值(附源码)
- C# Enum,Int,String的互相转换
- C# 版dll 程序集合并工具
- C#底层库--CSV和DataTable相互转换
- C# 通过进程名/进程Id 操作窗口/程序
- Unity c#脚本中调用主线程方法
- .NET(C#) 设计模式六大原则 开闭原则
- C#设计模式系列:代理模式(Proxy)
- C#Epplus使用写入Excel
- 地球坐标转换(度分秒转度),火星坐标,百度坐标转换 c++,js ,c# 算法通用
- 【转载】C# 日常小问题:DataGridview转换为DataTable
- 2019-8-31-C#-转换类型和字符串
- 2019-8-31-C#-大端小端转换
- C# 转换类型和字符串
- C# 从零开始写 SharpDx 应用 绘制基础图形