c# - 获取 System.Drawing.Color 值作为 ARGB 十六进制代码
问题描述
我想以System.Drawing.Color
ARGB Hex 格式获得价值,例如Color.Red
以ffff0000
一种简单的方式。
一般来说,可以从struct的Name
属性中得到:System.Drawing.Color
using System.Drawing;
var color = ColorTranslator.FromHtml("#ff0000");
Console.WriteLine(color.Name);
输出:ffff0000
但是,如果该值提供为known color ,则会出现问题:
using System.Drawing;
var color = Color.Red;
Console.WriteLine(color.Name);
输出:Red
我应用了这个问题的解决方案将System.Drawing.Color
值转换为 RGB 代码,并在代码前面加上ff
了 alpha 通道:
var c = System.Drawing.Color.Red;
Console.WriteLine("ff" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2"));
输出:ffff0000
但我找到了另一种可用于将 ARGB 值作为十六进制代码获取的解决方案(请参见下面的答案)。
解决方案
ARGB Hex 代码可以从已知颜色Name
的属性中获得,方法是将其转换为 ARGB 并返回到结构:System.Drawing.Color
using System.Drawing;
var color = Color.Red;
color = Color.FromArgb(color.ToArgb());
Console.WriteLine(color.Name);
输出:ffff0000
推荐阅读
- python - 保存虚拟和非物理文件
- r - 无法加载 .rda
- python - 如何获得 3D convnet 对空间数据进行分类?
- python - Python 3.6 ftps 文件下载 - SSLEOFError: EOF 发生违反协议 (_ssl.c:841)
- wordpress - 如何使 WordPress 插件在所有管理页面上显示内容?
- erlang - 重新编译 Erlang 的 beam_disasm.file 的输出
- android - 领域数据库多表
- c# - Azure 服务总线队列中的消息多于发送的消息
- html - 使用纯引导程序 4.1.3 动态对齐内容的具体问题?
- javascript - 复选框启用只读输入不工作