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 parsingur intégré .NET 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 fonction ToInt32
a une surcharge avec un deuxième paramètre qui représente la base de 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.ConvertFromSsortingng( "#FF00FF" );
Cela peut également convertir à partir des couleurs nommées standard, par exemple ConvertFromSsortingng (“Blue”)
Voir ici pour une discussion sur les mécanismes de conversion de type .NET standard.
La méthode FromName a fonctionné pour moi
System.Drawing.Color.FromName("#FF00FF");
Si la couleur que vous souhaitez utiliser est une constante, en C #, utilisez System.Drawing.Color.FromArgb (0xFF00FF)
. C’est légèrement plus rapide que System.Drawing.Color.FromName
ou System.Drawing.Color.FromHtml
, puisque l’parsing d’une chaîne en entier se fait au moment de la compilation plutôt qu’à l’exécution.