¿Cómo crear un System.Drawing.Color a partir de su cadena RGB hexadecimal?


84

Quiero crear un System.Drawing.Colorvalor a partir de un valor similar #FF00FFo FF00FFsin necesidad de escribir código para eso. ¿Hay algún analizador .NET incorporado para eso?

Respuestas:



62

Puede utilizar el método estático System.Drawing.ColorTranslator FromHtml.

utilizar:

System.Drawing.ColorTranslator.FromHtml("#FFFFFF");

18

Es bastante fácil cuando usa Convert-Class . La ToInt32funció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));

9

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.


1

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.FromNameo 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.


0

El método FromName funcionó para mí

System.Drawing.Color.FromName("#FF00FF");
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.