将颜色设置为int变量

时间:2016-08-24 17:49:05

标签: c# wpf colors rgb

我想为0-9中的每个数字设置一个颜色,从白色到黑色白色为0,黑色为9,所以在中间将是蓝色= 2,绿色= 1,红色= 4。 因此,当用户输入数字2144214时,我可以计算并创建新颜色。 像2xgreen,2xblue和3xred这样的东西,即2 + 2 + 1 + 1 + 4 + 4 + 4,结果将是一种新颜色。 这就是想法,但是杀死我的部分是为变量设置颜色值,是否可能? 我正在使用WPF C#app。

2 个答案:

答案 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所示。