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感到抱歉。
答案 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);