Comment puis-je obtenir une couleur à partir d'un code couleur hexadécimal (par exemple #FFDFD991
) ?
Je lis un fichier et j'obtiens un code couleur hexadécimal. Je dois créer l'instance System.Windows.Media.Color
correspondante pour le code couleur hexadécimal. Existe-t-il une méthode intégrée dans le framework pour faire cela ?
Si vous voulez parler des codes RVB de type HTML (appelés codes Hex, comme #FFCC66), utilisez la classe [ColorTranslator][1] :
System.Drawing.Color col = System.Drawing.ColorTranslator.FromHtml("#FFCC66");
Si, par contre, vous utilisez un code hexagonal ARGB, vous pouvez utiliser la classe [ColorConverter][2] de l'espace de noms System.Windows.Media :
Color col = ColorConverter.ConvertFromString("#FFDFD991") as Color;
//or = (Color) ColorConverter.ConvertFromString("#FFCC66") ;
[1] : http://msdn.microsoft.com/en-us/library/system.drawing.colortranslator_members.aspx [2] : http://msdn.microsoft.com/en-us/library/ms606533.aspx
Utilisez
System.Drawing.Color.FromArgb(myHashCode);
Si vous voulez dire HashCode comme dans .GetHashCode()
, j'ai bien peur que vous ne puissiez pas revenir en arrière. Les fonctions de hachage ne sont pas bidirectionnelles, vous ne pouvez aller qu'en avant, pas en arrière.
Suivez la suggestion d'Oded si vous avez besoin d'obtenir la couleur en fonction de la valeur hexadécimale de la couleur.