667 votes

Comment obtenir la Couleur de code de couleur Hexadécimal en utilisant .NET?

Comment puis-je obtenir une Couleur à partir d'un code de couleur Hexadécimal ou dire, le code de Hachage (par exemple, #FFDFD991)?

Je suis de la lecture d'un fichier et l'obtention de code de couleur Hexadécimal, j'ai besoin de créer le correspondant System.Windows.Media.Color exemple pour le code de couleur Hexadécimal. Est-il intégré de la méthode dans le cadre de ce faire?

801voto

Thorarin Points 21538

Je suppose que c'est une ARGB code... Êtes-vous référant System.Drawing.Color ou System.Windows.Media.Color? Ce dernier est utilisé dans WPF par exemple. Je n'ai vu personne mentionner encore, donc juste au cas où vous avez été à la recherche pour elle:

using System.Windows.Media;

Color color = (Color)ColorConverter.ConvertFromString("#FFDFD991");

594voto

Oded Points 271275

En supposant que tu veux dire le code HTML de type RVB codes (appelé Hex codes, tels que #FFCC66), utilisez la ColorTranslator classe:

System.Drawing.Color col = System.Drawing.ColorTranslator.FromHtml("#FFCC66");

Si, toutefois, vous utilisez un ARGB code hexadécimal, vous pouvez utiliser le ColorConverter classe à partir du Système.De Windows.Les médias de l'espace de noms:

Color col = ColorConverter.ConvertFromString("#FFDFD991") as Color;

133voto

Hans Kesting Points 17043

Si vous ne souhaitez pas utiliser le ColorTranslator, vous pouvez le faire facilement:

string colorcode = "#FFFFFF00";
int argb = Int32.Parse(colorcode.Replace("#", ""), NumberStyles.HexNumber);
Color clr = Color.FromArgb(argb);

Le colorcode est juste la représentation hexadécimale de l'argb de la valeur.

40voto

Jink Points 213

Il y a aussi cette jolie petite extension de la méthode:

static class ExtensionMethods
{
    public static Color ToColor(this uint argb)
    {
        return Color.FromArgb((byte)((argb & -16777216)>> 0x18),      
                              (byte)((argb & 0xff0000)>> 0x10),   
                              (byte)((argb & 0xff00) >> 8),
                              (byte)(argb & 0xff));
    }
}

En cours d'utilisation:

Color color = 0xFFDFD991.ToColor();

32voto

Shoeb Points 254

Vous pouvez utiliser le code ci-dessous en C#

System.Drawing.Color col = System.Drawing.ColorTranslator.FromHtml("#FFCC66");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X