Quiero crear un System.Drawing.Color
valor a partir de un valor similar #FF00FF
o FF00FF
sin necesidad de escribir código para eso. ¿Hay algún analizador .NET incorporado para eso?
Quiero crear un System.Drawing.Color
valor a partir de un valor similar #FF00FF
o FF00FF
sin necesidad de escribir código para eso. ¿Hay algún analizador .NET incorporado para eso?
Respuestas:
ColorTranslator.FromHtml("#FF00FF");
Es bastante fácil cuando usa Convert-Class . La ToInt32
función 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));
Utilice la clase ColorConverter :
var converter = System.ComponentModel.TypeDescriptor.GetConverter( typeof( Color ) );
color = converter.ConvertFromString( "#FF00FF" );
Esto también puede convertir de los colores con nombre estándar, por ejemplo, ConvertFromString ("Azul")
Consulte aquí para ver una discusión sobre los mecanismos de conversión de tipo .NET estándar.
Si el color que desea usar es una constante, en C # use System.Drawing.Color.FromArgb (0xFF00FF)
. Eso es un poco 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.