首页 > 解决方案 > 获取 System.Drawing.Color 值作为 ARGB 十六进制代码

问题描述

我想以System.Drawing.ColorARGB Hex 格式获得价值,例如Color.Redffff0000一种简单的方式。

一般来说,可以从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 值作为十六进制代码获取的解决方案(请参见下面的答案)。

标签: c#colors

解决方案


ARGB Hex 代码可以从已知颜色Name的属性中获得,方法是将其转换为 ARGB 并返回到结构:System.Drawing.Color

using System.Drawing;

var color = Color.Red;
color = Color.FromArgb(color.ToArgb());
Console.WriteLine(color.Name);

输出:ffff0000


推荐阅读