【问题标题】:How to get color name from integer value in c#? [duplicate]如何从 c# 中的整数值获取颜色名称? [复制]
【发布时间】:2015-05-04 17:23:14
【问题描述】:

如何从数据库中保存的整数值中获取颜色名称。例如,当我保存黑色时,它保存为“-16777216”,当我将此整数值转换回颜色时,我得到的颜色名称为“ff000000”而不是“黑色”。

提前致谢。

【问题讨论】:

  • 那么到目前为止你尝试过什么?大概您应该对整数执行 SQL 查询...
  • 我假设这是 WinForms?
  • 是的,这是 Windows 窗体,但我使用的是 DevExpress ColorEdit 控件。

标签: c# colors


【解决方案1】:

试试这个:

private System.Drawing.Color GetSystemDrawingColorFromHexString(string hexString)
{
    if (!System.Text.RegularExpressions.Regex.IsMatch(hexString, @"[#]([0-9]|[a-f]|[A-F]){6}\b"))
        throw new ArgumentException();
    int red = int.Parse(hexString.Substring(1, 2), NumberStyles.HexNumber);
    int green = int.Parse(hexString.Substring(3, 2), NumberStyles.HexNumber);
    int blue = int.Parse(hexString.Substring(5, 2), NumberStyles.HexNumber);
    return Color.FromArgb(red, green, blue);
}

Color color = GetSystemDrawingColorFromHexString(colorCode);
return color.GetKnownColor();

【讨论】:

  • 你的意思是ToKnownColor
  • GetSystemDrawingColorFromHexString 究竟做了什么?因为Color.ToKnownColor 不会返回使用Color.FromArgb() 方法创建的颜色的名称。 msdn.microsoft.com/en-us/library/…
  • 我很抱歉。我怀念以前的方法。再试一次。
  • @MárcioGonzalez 仍然不起作用,请阅读我提供的链接,ToKnownColor 不会给出使用 FromArgb 创建的颜色的名称,即使它是已知颜色。
猜你喜欢
  • 2014-07-20
  • 1970-01-01
  • 1970-01-01
  • 2013-12-02
  • 1970-01-01
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多