.net - Cómo crear un System.Drawing.Color a partir de su secuencia RGB hexadecimal?
colors parsing (6)
Quiero crear un System.Drawing.Color
partir de un valor como #FF00FF
o FF00FF
sin necesidad de escribir código para eso. ¿Hay algún analizador incorporado de .NET para eso?
El método FromName funcionó para mí
System.Drawing.Color.FromName("#FF00FF");
Es bastante fácil cuando usa Convert-Class . La función ToInt32
tiene una sobrecarga con un segundo parámetro que representa la base en la que se encuentra la cadena.
using System.Drawing
Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));
Puede utilizar el método estático System.Drawing.ColorTranslator FromHtml.
utilizar:
System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
Si el color que desea usar es una constante, en C # use System.Drawing.Color.FromArgb (0xFF00FF)
. Eso es ligeramente más rápido que System.Drawing.Color.FromName
o System.Drawing.Color.FromHtml
, ya que el análisis de una cadena a un entero se realiza en tiempo de compilación en lugar de en tiempo de ejecución.
Use la clase ColorConverter :
var converter = System.ComponentModel.TypeDescriptor.GetConverter( typeof( Color ) );
color = converter.ConvertFromString( "#FF00FF" );
Esto también puede convertirse a partir de los colores con nombre estándar, por ejemplo, ConvertFromString ("Azul")
Vea here para una discusión de los mecanismos de conversión de tipo .NET estándar.
ColorTranslator.FromHtml("#FF00FF");