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. J'ai besoin de créer l' System.Windows.Media.Color
instance correspondante pour le code couleur hexadécimal. Existe-t-il une méthode intégrée dans le cadre pour ce faire?
#FF0000
est un code couleur HTML (ou hexadécimal), pas un code de hachage. Veuillez apprendre la différence.Réponses:
Je suppose que c'est un code ARGB ... Vous parlez de
System.Drawing.Color
ouSystem.Windows.Media.Color
? Ce dernier est utilisé dans WPF par exemple. Je n'ai encore vu personne le mentionner, alors juste au cas où vous le recherchez:la source
Color.FromArgb
Cependant, il est probablement plus facile d'utiliser la méthode dans ce cas. Si vous utilisez l'alpha à virgule flottante, vous devrez multiplier par 255.En supposant que vous voulez dire les codes RVB de type HTML (appelés codes Hex, tels que # FFCC66), utilisez la classe ColorTranslator :
Si, toutefois, vous utilisez un code hexadécimal ARGB, vous pouvez utiliser la classe ColorConverter de l'espace de noms System.Windows.Media:
la source
Si vous ne souhaitez pas utiliser ColorTranslator, vous pouvez le faire facilement:
Le code couleur n'est que la représentation hexadécimale de la valeur ARGB.
ÉDITER
Si vous devez utiliser 4 valeurs au lieu d'un seul entier, vous pouvez utiliser ceci (en combinant plusieurs commentaires):
Remarque 1 : NumberStyles est dans System.Globalization.
Remarque 2 : veuillez fournir votre propre vérification d'erreur (le code couleur doit être une valeur hexadécimale de 6 ou 8 caractères)
la source
colorcode = colorcode.Replace("#", "")
simplement utiliséint a = byte.parse(colorcode.Substring(0,2), NumberStyles.HexNumber);
et ainsi de suite pour r, g et b. N'oubliez pas de remplacer le premier paramètre de Substring - l'index - par 2 pour r, 4 pour g et 6 pour b.FromArgb
prend 1 paramètreSystem.Drawing.Color
et 4 paramètresSystem.Windows.Media.Color
Il y a aussi cette petite méthode d'extension soignée:
Utilisé:
la source
Color
correctement hex . J'ai utilisé le code de @too et cela l'a corrigé.& 0xFF
à chaque fois la valeur rétrogradée finale, au lieu d'avoir besoin de toutes ces différentes valeurs&
.Les trois variantes ci-dessous donnent exactement la même couleur. Le dernier a l'avantage d'être mis en évidence dans l'IDE de Visual Studio 2010 (peut-être que c'est ReSharper qui le fait) avec la bonne couleur.
la source
System.Windows.Media.Color
.la source
J'avais besoin de convertir un code couleur HEX en System.Drawing.Color, en particulier une nuance d'Alice Blue en arrière-plan sur un formulaire WPF et j'ai trouvé qu'il fallait plus de temps que prévu pour trouver la réponse:
-
la source
Vous pouvez utiliser le code suivant:
la source
Si vous voulez le faire avec une application Windows Store, suivez @Hans Kesting et @Jink réponse:
la source
Ce message est devenu le goto pour quiconque essaie de convertir un code de couleur hexadécimal en une couleur système. Par conséquent, j'ai pensé ajouter une solution complète qui prend en charge les valeurs hexadécimales à 6 chiffres (RVB) et 8 chiffres (ARGB).
Par défaut, selon Microsoft, lors de la conversion d'une valeur RVB en valeur ARGB
Cela signifie qu'en ajoutant FF à un code de couleur hexadécimal à 6 chiffres (RVB), il devient un code de couleur hexadécimal ARGB à 8 chiffres. Par conséquent, une méthode simple peut être créée qui gère les hexagones ARGB et RGB et les convertit en la structure de couleur appropriée.
Cela a été inspiré par la réponse de Hans Kesting.
la source
Vous pouvez voir l' ellipse des jeux Silverlight / WPF avec une couleur hexadécimale pour utiliser une valeur hexadécimale:
la source
WPF:
la source
Color [Indigo]
Utilisation
la source
int
?Si vous voulez dire HashCode comme
.GetHashCode()
, je crains que vous ne puissiez pas revenir en arrière. Les fonctions de hachage ne sont pas bidirectionnelles, vous pouvez avancer uniquement, 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.
la source
J'ai utilisé ColorDialog dans mon projet. ColorDialog retourne parfois "Red", "Fhushia" et retourne parfois "fff000". J'ai résolu ce problème comme ça peut-être aider quelqu'un.
InputColor est la valeur de retour de ColorDialog.
Merci à tous d'avoir répondu à cette question, cela m'aide beaucoup.
la source