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 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.