81 votes

Comment créer un System.Drawing.Color à partir de sa chaîne RVB hexadécimale?

Je veux créer un System.Drawing.Color partir d'une valeur telle que #FF00FF ou FF00FF sans avoir à écrire de code pour cela. Il existe un analyseur intégré .NET pour cela?

160voto

João Angelo Points 24422
ColorTranslator.FromHtml("#FF00FF");

59voto

Pat Points 3464

Vous pouvez utiliser la méthode statique System.Drawing.ColorTranslator FromHtml.

utilisation:

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

16voto

Bobby Points 6894

C'est plutôt facile lorsque vous utilisez Convert-Class . La fonction ToInt32 a une surcharge avec un deuxième paramètre qui représente la base dans laquelle se trouve la chaîne.

 using System.Drawing

Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));
 

9voto

Phil Devaney Points 8595

Utilisez la classe ColorConverter :

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

Cela peut également convertir les couleurs standard nommées, par exemple ConvertFromString ("Blue")

Voir ici pour une discussion sur les mécanismes de conversion de type .NET standard.

0voto

bicbmx Points 156

La méthode FromName a fonctionné pour moi

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X