![](/img/trans.png)
[英]Why does System.Drawing.Color add 'ff' to hex code?
[英]Get System.Drawing.Color value as ARGB Hex code
我想以一种简单的方式获得 ARGB 十六进制格式的System.Drawing.Color
值,例如Color.Red
作为ffff0000
。
一般来说,它可以从System.Drawing.Color
结构体的Name
属性中获取:
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
我应用了这个问题的解决方案将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 十六进制代码可以从已知颜色的Name
属性中获取,方法是将其转换为 ARGB 并返回到System.Drawing.Color
结构:
using System.Drawing;
var color = Color.Red;
color = Color.FromArgb(color.ToArgb());
Console.WriteLine(color.Name);
输出: ffff0000
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.