获取System.Drawing.Color值作为ARGB十六进制代码

时间:2018-09-26 13:05:12

标签: c# colors

我想获取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值作为十六进制代码的解决方案。

1 个答案:

答案 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