Как я могу получить цвет из шестнадцатеричного цветового кода (например, #FFDFD991
)?
Я читаю файл и получаю шестнадцатеричный код цвета. Мне нужно создать соответствующий System.Windows.Media.Color
экземпляр для шестнадцатеричного кода цвета. Есть ли встроенный метод в рамках для этого?
#FF0000
является HTML (или шестнадцатеричным) цветным кодом, а не хеш-кодом. Пожалуйста, узнайте разницу.Ответы:
Я предполагаю, что это код ARGB ... Вы имеете в виду
System.Drawing.Color
илиSystem.Windows.Media.Color
? Последний используется в WPF, например. Я еще не видел, чтобы кто-то упоминал об этом, так что на всякий случай вы искали это:источник
Color.FromArgb
в этом случае использовать метод проще . Если вы используете альфа с плавающей запятой, вам придется умножить на 255.Предполагая, что вы имеете в виду коды RGB типа HTML (называемые шестнадцатеричными кодами, например # FFCC66), используйте класс ColorTranslator :
Однако, если вы используете шестнадцатеричный код ARGB, вы можете использовать класс ColorConverter из пространства имен System.Windows.Media:
источник
Если вы не хотите использовать ColorTranslator, вы можете сделать это легко:
Цветовой код - это шестнадцатеричное представление значения ARGB.
РЕДАКТИРОВАТЬ
Если вам нужно использовать 4 значения вместо одного целого числа, вы можете использовать это (объединяя несколько комментариев):
Примечание 1 : NumberStyles находится в System.Globalization.
Примечание 2 : предоставьте свою собственную проверку ошибок (цветовой код должен быть шестнадцатеричным значением из 6 или 8 символов)
источник
colorcode = colorcode.Replace("#", "")
простого использованияint a = byte.parse(colorcode.Substring(0,2), NumberStyles.HexNumber);
и так далее для r, g и b. Не забудьте заменить первый параметр Substring - индекс - на 2 для r, 4 для g и 6 для b.FromArgb
принимает 1 параметр вSystem.Drawing.Color
и 4 параметра вSystem.Windows.Media.Color
Есть также этот аккуратный метод расширения:
В использовании:
источник
Color
должным образом. Я использовал код из @too, и это исправило его.& 0xFF
использовать окончательное значение пониженного смещения каждый раз, вместо того, чтобы использовать все эти различные значения&
.Три варианта ниже дают точно такой же цвет. Последнее имеет то преимущество, что оно выделяется в IDE Visual Studio 2010 (может быть, это делает ReSharper) правильным цветом.
источник
System.Windows.Media.Color
.источник
Мне нужно было преобразовать цветовой код HEX в System.Drawing.Color, в частности, оттенок Alice Blue в качестве фона в форме WPF, и я обнаружил, что на поиск ответа ушло больше времени, чем ожидалось:
-
источник
Вы можете использовать следующий код:
источник
Если вы хотите сделать это с помощью Магазина Windows, следуйте инструкциям @Hans Kesting и @Jink:
источник
Этот пост стал тем, кто пытается преобразовать шестнадцатеричный цветовой код в системный цвет. Поэтому я решил добавить комплексное решение, которое работает с шестнадцатеричными (RGB) и 8-значными (ARGB) шестнадцатеричными значениями.
По умолчанию, согласно Microsoft, при преобразовании из RGB в значение ARGB
Это означает, что, добавляя FF к 6-значному (RGB) шестнадцатеричному цветному коду, он становится 8-значным шестнадцатеричным цветным кодом ARGB. Таким образом, можно создать простой метод, который обрабатывает как гексагоны ARGB, так и RGB и преобразует их в соответствующую структуру Color.
Это было вдохновлено ответом Ганса Кестинга.
источник
Вы можете видеть, что Silverlight / WPF устанавливает эллипс с шестнадцатеричным цветом для использования шестнадцатеричного значения:
источник
WPF:
источник
Color [Indigo]
использование
источник
int
?Если вы имеете в виду HashCode
.GetHashCode()
, я боюсь, вы не сможете вернуться назад. Хэш-функции не являются двунаправленными, вы можете идти только вперед, а не назад.Следуйте совету Одеда, если вам нужно получить цвет на основе шестнадцатеричного значения цвета.
источник
Я использовал ColorDialog в моем проекте. ColorDialog иногда возвращает «Red», «Fhushia», а иногда возвращает «fff000». Я решил эту проблему, как это, возможно, помочь кому-то.
InputColor - это возвращаемое значение из ColorDialog.
Спасибо всем за ответ на этот вопрос. Это большая помощь для меня.
источник