如何将十六进制#FFFFFF 转换为 System.Drawing.Color [重复]

Posted

技术标签:

【中文标题】如何将十六进制#FFFFFF 转换为 System.Drawing.Color [重复]【英文标题】:How to convert Hexadecimal #FFFFFF to System.Drawing.Color [duplicate] 【发布时间】:2012-08-22 18:10:44 【问题描述】:

可能重复:How to get Color from Hex color code using .NET?

我想将#FFFFFF 之类的字符串转换为System.Drawing.Color。你是怎么做到的?

【问题讨论】:

***.com/questions/2109756/… 投票重新打开,dup 问题处理不同类型的颜色结构。 【参考方案1】:

删除“#”并执行

Color c = Color.FromArgb(int.Parse("#FFFFFF".Replace("#",""),
                         System.Globalization.NumberStyles.AllowHexSpecifier));

【讨论】:

有些选项不需要转换为数值,这是不必要的步骤。 OP声明它是一个字符串 其他解决方案也将字符串转换为数值,它们只是在内部进行。如果这是一个优化问题,则需要进行性能测试以查看 Color.FromArgb() w/ int.Parse()ColorConvertor.ConvertFromString()ColorTranslator.Fromhtml() 的比较。 Alpha 值不是 0 吗?【参考方案2】:
string hex = "#FFFFFF";
Color _color = System.Drawing.ColorTranslator.FromHtml(hex);

注意:哈希很重要!

【讨论】:

在没有 System.Drawing 命名空间的 UWP 中呢? @AdrianK 使用 codeteq 的答案。它适用于 NetStandard 2.0 这对我有用:item.BackgroundColor = Color.FromHex(line.s_BackGroundCol);【参考方案3】:

你可以的

var color =  System.Drawing.ColorTranslator.FromHtml("#FFFFFF");

或者这个(你需要System.Windows.Media命名空间)

var color = (Color)ColorConverter.ConvertFromString("#FFFFFF");

【讨论】:

当我转换白色时,我得到的不是白色。

以上是关于如何将十六进制#FFFFFF 转换为 System.Drawing.Color [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Arduino:将字符串十六进制“#FFFFFF”转换为 3 int

使用 php 将 MS Access 颜色转换为十六进制?

如何将 csv(或类似)转换为 bmp(或类似)

将数组十六进制颜色转换为数组 rgb 颜色 [重复]

如何将十六进制转换为RGB

如何将我的十六进制字符串转换为数字? [复制]