我想获取ARGB十六进制格式的System.Drawing.Color
值,例如以简单的方式将Color.Red
用作ffff0000
。
通常,它可以从Name
结构的System.Drawing.Color
属性中获得:
using System.Drawing;
var color = ColorTranslator.FromHtml("#ff0000");
Console.WriteLine(color.Name);
输出:ffff0000
但是如果将值提供为已知颜色 ,则会出现问题:
using System.Drawing;
var color = Color.Red;
Console.WriteLine(color.Name);
输出:Red
我应用了this question的解决方案,将System.Drawing.Color
的值转换为RGB代码,并为alpha通道添加了ff
前缀的代码:
var c = System.Drawing.Color.Red;
Console.WriteLine("ff" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2"));
输出:ffff0000
但是我发现了其他可用于获取ARGB值作为十六进制代码的解决方案。
答案 0 :(得分:0)
可以通过将已知颜色的Name
属性转换为ARGB并返回到System.Drawing.Color
结构来获取ARGB十六进制代码:
using System.Drawing;
var color = Color.Red;
color = Color.FromArgb(color.ToArgb());
Console.WriteLine(color.Name);
输出:ffff0000