如何以Xaml 4随机颜色提供textBox?

时间:2016-03-24 08:05:20

标签: c# xaml random

txtbKleuren.Foreground = new SolidColorBrush(Color.FromArgb(100,255,125,35)); 我有4个按钮,名称分别为红色,绿色,蓝色和黄色以及文本块。因此,当文本块上出现黄色时,我必须按下黄色按钮才能得到一个点。如何让文本块随机提供4种颜色中的一种?

这是我的代码:

 public MainPage()
        {
            this.InitializeComponent();
            Random rand = new Random();

             txtbKleuren.Foreground = new SolidColorBrush(Color.FromArgb(100, 255, 125, 35)); 

        }

        private void btnKleur4_Click(object sender, RoutedEventArgs e)
        {

        }

我不知道如何给文本框添加随机颜色,所以我尝试了一些东西!请帮帮我。我真的很想知道它!对不起我的坏Englisch感到抱歉。

1 个答案:

答案 0 :(得分:1)

首先,我建议您将Random变量声明为类成员变量,以便以后可以在需要时访问它。这样做是一种很好的做法。所以,把它放在任何方法/函数之外:

Random rand = new Random();

回答这个问题,你可以先声明一个预定义颜色的数组(红色,蓝色,绿色和黄色):

Color[] colors = new Color[]
{
    Colors.Red,
    Colors.Blue,
    Colors.Green,
    Colors.Yellow
};

您可以像在问题中一样定义自定义阴影,而不是使用Colors.Yellow等。

接下来,使用您的rand变量生成一个随机数(0到3之间)作为数组的索引:

int randIndex = rand.Next(0, 4); // 0, 3 + 1 -> the Random.Next() function's upper bound is exclusive.

最后,获取随机颜色:

Color randColor = colors[randIndex];
txtbKleuren.Foreground = new SolidColorBrush(randColor);

或者,您甚至可以显示颜色的名称和相应的前景颜色:

Dictionary<string, Color> colors = new Dictionary<string, Color>()
{
    {
        "Red",
        Colors.Red
    },
    {
        "Blue",
        Colors.Blue
    },
    {
        "Green",
        Colors.Green
    },
    {
        "Yellow",
        Colors.Yellow
    }
};

var randColName = colors.ToArray()[randIndex];
txtbKleuren.Text = randColName.Key;
txtbKleuren.Foreground = new SolidColorBrush(randColName.Value);