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?
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:
ColorTranslator.FromHtml("#FF00FF");
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));
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.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.