Je veux créer un à System.Drawing.Color
partir d'une valeur comme #FF00FF
ou FF00FF
sans avoir besoin d'écrire du code pour cela. Il existe un analyseur .NET intégré pour cela?
ColorTranslator.FromHtml("#FF00FF");
Vous pouvez utiliser la méthode statique System.Drawing.ColorTranslator FromHtml.
utilisation:
System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
C'est assez facile lorsque vous utilisez la classe Convert . La ToInt32
fonction 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));
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.
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.FromName
ou 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.
La méthode FromName a fonctionné pour moi
System.Drawing.Color.FromName("#FF00FF");