How to create a System.Drawing.Color from its hexadecimal RGB string?

前端 未结 6 1490
-上瘾入骨i
-上瘾入骨i 2020-12-30 18:37

I want to create a System.Drawing.Color from a value like #FF00FF or FF00FF without needing to write code for that. There is any .NET

相关标签:
6条回答
  • 2020-12-30 18:37

    It is rather easy when you use the Convert-Class. The ToInt32 function has an overload with a second parameter which represents the base the string is in.

    using System.Drawing
    
    Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));
    
    0 讨论(0)
  • If the color you want to use is a constant, in C# use System.Drawing.Color.FromArgb (0xFF00FF). That is slightly faster than System.Drawing.Color.FromName or System.Drawing.Color.FromHtml, since the parsing from a string to integer is done at compile time rather than at runtime.

    0 讨论(0)
  • 2020-12-30 18:48
    ColorTranslator.FromHtml("#FF00FF");
    
    0 讨论(0)
  • 2020-12-30 18:54

    The FromName method worked for me

    System.Drawing.Color.FromName("#FF00FF");
    
    0 讨论(0)
  • 2020-12-30 19:01

    You can use the System.Drawing.ColorTranslator static method FromHtml.

    use:

    System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
    
    0 讨论(0)
  • 2020-12-30 19:01

    Use the ColorConverter class:

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

    This can also convert from the standard named colors e.g. ConvertFromString( "Blue" )

    See here for a discussion of the standard .NET type conversion mechanisms.

    0 讨论(0)
提交回复
热议问题