繁体   English   中英

如何给Xaml 4随机颜色的textBox?

[英]How can I give a textBox in Xaml 4 random colors?

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)
        {

        }

我不知道如何为文本框赋予随机颜色,所以我只是尝试了一些方法! 请帮帮我。 我真的很想知道! 对于我的英语不好,我深表歉意。

首先,我建议您将Random变量声明为类成员变量,以便以后需要时可以访问它。 这是一个好习惯。 因此,将其放在任何方法/函数之外:

Random rand = new Random();

谈到这个问题,您可以先声明一组预定义的颜色(红色,蓝色,绿色和黄色):

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

除了使用Colors.YellowColors.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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM