我想为0-9中的每个数字设置一个颜色,从白色到黑色白色为0,黑色为9,所以在中间将是蓝色= 2,绿色= 1,红色= 4。 因此,当用户输入数字2144214时,我可以计算并创建新颜色。 像2xgreen,2xblue和3xred这样的东西,即2 + 2 + 1 + 1 + 4 + 4 + 4,结果将是一种新颜色。 这就是想法,但是杀死我的部分是为变量设置颜色值,是否可能? 我正在使用WPF C#app。
答案 0 :(得分:1)
我建议你使用枚举类型
enum Color
{
white = 0,
red = 1,
blue = 2,
black = 9
}
链接:https://msdn.microsoft.com/en-us/library/cc138362.aspx?f=255&MSPPError=-2147217396
答案 1 :(得分: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所示。