如何将十六进制#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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章