2016-08-24 8 views
1

Я хочу установить цвет для каждого числа от 0 до 9, от белого до черного белого - 0, а черный - 9, поэтому в середине будет синий = 2, зеленый = 1 , красный = 4. Итак, когда пользователь вводит номер 2144214, я мог бы рассчитать и создать новый цвет. Что-то вроде 2xgreen, 2xblue и 3xred, это будет 2 + 2 + 1 + 1 + 4 + 4 + 4, и результатом будет новый цвет. Это идея, но часть, которая меня убивает, устанавливает значение цвета для переменной, возможно ли это? Я работаю в приложении WPF C#.Установка цвета переменной int

+0

Color.FromArgb() –

+0

любой цвет в 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 –

+0

И мне придется инициализировать красный, синий и зеленый, поэтому я могу подсчитать количество каждого из цветов позже в приложении? – AlexDev

ответ

0

Глядя на вашей полной проблемы, я думаю, что вам нужно сохранить красный, зеленый и синий отдельно и увеличения/уменьшения эти значения соответствуют введенным цифрам. Это может пойти что-то вроде этого

// 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.

+0

, поэтому вы предполагаете, что я должен сделать 9 случаев для разных цветов, от black = case 0 до white = case 9? – AlexDev

+0

Извините за задержку в ответе. Это дрейф кода выше. Конечно, есть много способов сделать это, и есть установленные способы выбора цвета RGB или HSL. Я не был точно уверен в том, что вы хотели, но это звучало так, будто у вас было блюдо с водой, и я хотел добавить больше капель красного, зеленого, синего и т. Д. Цветов в зависимости от входной строки. –

+0

Я попытаюсь сделать это более понятным - я хочу создать приложение, в котором пользователь будет вводить информацию, ofc, numbers, например «введите свой годовой доход», и пользователь будет вводить 321444, и приложение будет делать цвет из этих чисел, изначально я думал, что это можно сделать, сделав 10 цветов от 0 до 9, но тем временем я обнаружил, что гораздо проще использовать только красные зеленые и синие цвета. , но теперь моя проблема заключается в том, как суммировать числа. – AlexDev