代码之家  ›  专栏  ›  技术社区  ›  Jader Dias

如何从十六进制rgb字符串创建system.drawing.color?

  •  78
  • Jader Dias  · 技术社区  · 15 年前

    我想创造一个 System.Drawing.Color 从一个像 #FF00FF FF00FF 不需要为此编写代码。有什么.NET内置的解析器吗?

    6 回复  |  直到 10 年前
        1
  •  154
  •   João Angelo    15 年前
    ColorTranslator.FromHtml("#FF00FF");
    
        2
  •  58
  •   Pat    15 年前

    可以使用system.drawing.colorTranslator fromHTML静态方法。

    用途:

    System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
    
        3
  •  15
  •   Bobby    11 年前

    当你使用 Convert-Class . 这个 ToInt32 函数具有第二个参数的重载,该参数表示字符串所在的基。

    using System.Drawing
    
    Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));
    
        4
  •  9
  •   Phil Devaney    15 年前

    使用 ColorConverter 班级:

    var converter = System.ComponentModel.TypeDescriptor.GetConverter( typeof( Color ) );
    color = converter.ConvertFromString( "#FF00FF" );
    

    这也可以从标准命名颜色转换,例如convertfromstring(“蓝色”)

    here 用于讨论标准.NET类型转换机制。

        5
  •  1
  •   Michael Rodby    10 年前

    如果要使用的颜色是常数,则使用 System.Drawing.Color.FromArgb (0xFF00FF) . 比 System.Drawing.Color.FromName System.Drawing.Color.FromHtml ,因为从字符串到整数的解析是在编译时而不是在运行时完成的。

        6
  •  0
  •   bicbmx    11 年前

    fromname方法对我有效

    System.Drawing.Color.FromName("#FF00FF");