Я хочу установить цвет для каждого числа от 0 до 9, от белого до черного белого - 0, а черный - 9, поэтому в середине будет синий = 2, зеленый = 1 , красный = 4. Итак, когда пользователь вводит номер 2144214, я мог бы рассчитать и создать новый цвет. Что-то вроде 2xgreen, 2xblue и 3xred, это будет 2 + 2 + 1 + 1 + 4 + 4 + 4, и результатом будет новый цвет. Это идея, но часть, которая меня убивает, устанавливает значение цвета для переменной, возможно ли это? Я работаю в приложении WPF C#.Установка цвета переменной int
ответ
Я бы порекомендовал вам использовать Enum типы
enum Color
{
white = 0,
red = 1,
blue = 2,
black = 9
}
Ссылка: https://msdn.microsoft.com/en-us/library/cc138362.aspx?f=255&MSPPError=-2147217396
Глядя на вашей полной проблемы, я думаю, что вам нужно сохранить красный, зеленый и синий отдельно и увеличения/уменьшения эти значения соответствуют введенным цифрам. Это может пойти что-то вроде этого
// get a digit
switch (digit) {
case 0: // black, darken the color
red -= 4; // value of 4 is arbitrary, it could be 1 or other
green -= 4;
blue -= 4;
break;
case 1: // red
red += 4;
break;
case 2: // green
green += 4;
break;
case 3: // blue
blue+= 4;
break;
case 4: // cyan
green += 4;
blue += 4;
break;
case 5: // yellow
red += 4;
green += 4;
break;
case 6: // magenta
red += 4;
blue += 4;
break;
case 7: // white, lighten everything
red += 4;
green += 4;
blue += 4;
break;
default:
break;
}
Конечно, вам нужно будет инициализировать красный, зеленый и синий до 0, а после создания цвет, необходимо будет проверить его на валидность (многие цветовые системы имеют предел 255 на каждый цвет). После всего этого вы будете иметь красный, зеленый и синий цвета и можете комбинировать с Color.FromArgb(), как предлагает @EdPlunkett.
, поэтому вы предполагаете, что я должен сделать 9 случаев для разных цветов, от black = case 0 до white = case 9? – AlexDev
Извините за задержку в ответе. Это дрейф кода выше. Конечно, есть много способов сделать это, и есть установленные способы выбора цвета RGB или HSL. Я не был точно уверен в том, что вы хотели, но это звучало так, будто у вас было блюдо с водой, и я хотел добавить больше капель красного, зеленого, синего и т. Д. Цветов в зависимости от входной строки. –
Я попытаюсь сделать это более понятным - я хочу создать приложение, в котором пользователь будет вводить информацию, ofc, numbers, например «введите свой годовой доход», и пользователь будет вводить 321444, и приложение будет делать цвет из этих чисел, изначально я думал, что это можно сделать, сделав 10 цветов от 0 до 9, но тем временем я обнаружил, что гораздо проще использовать только красные зеленые и синие цвета. , но теперь моя проблема заключается в том, как суммировать числа. – AlexDev
Color.FromArgb() –
любой цвет в WPF может быть представлен HTML строкой: #TTRRGGBB где TT является прозрачность и RR, GG, BB красный, зеленый и синий, так что вы можете создать любой цвет с этим строка кода: Цветной цвет = (Цвет) ColorConverter.ConvertFromString ("# FFDFD991"); это ответ на переполнение стека http://stackoverflow.com/questions/2109756/how-to-get-color-from-hexadecimal-color-code-using-net –
И мне придется инициализировать красный, синий и зеленый, поэтому я могу подсчитать количество каждого из цветов позже в приложении? – AlexDev