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


84

Je veux créer un à System.Drawing.Colorpartir d'une valeur comme #FF00FFou FF00FFsans avoir besoin d'écrire du code pour cela. Il existe un analyseur .NET intégré pour cela?

Réponses:



62

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

utilisation:

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

18

C'est assez facile lorsque vous utilisez la classe Convert . La ToInt32fonction 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));

9

Utilisez la classe ColorConverter :

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

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

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


1

Si la couleur que vous souhaitez utiliser est une constante, utilisez C # System.Drawing.Color.FromArgb (0xFF00FF). C'est légèrement plus rapide que System.Drawing.Color.FromNameou System.Drawing.Color.FromHtml, puisque l'analyse d'une chaîne à un entier est effectuée au moment de la compilation plutôt qu'au moment de l'exécution.


0

La méthode FromName a fonctionné pour moi

System.Drawing.Color.FromName("#FF00FF");
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.