c # xaml строка для имени кнопки - PullRequest
0 голосов
/ 30 апреля 2018

Я хочу случайным образом выбрать цвет кнопки. Это работает, когда я делаю Change_color(But0_0). Но я хочу, чтобы она работала автоматически, используя функцию for. Но это не работает (остановите программу).

private void But0_0_Click(object sender, RoutedEventArgs e)
{
    for (int i = 1; i <= 20; i++)
    {
        var ele = MainGrid.FindName("But0_" + i);
        Button button = ele as Button;
        Change_color(button);
    }
    Change_color(But0_0);
}

private void Change_color(Button name)
{
    Random rand = new Random();
    Color[] colors = new Color[]
    {
        Colors.Red,
        Colors.Blue,
        Colors.Green,
    };
    name.Background= new SolidColorBrush(colors[rand.Next(0, 3)]);
}

1 Ответ

0 голосов
/ 30 апреля 2018

Перемещение инициализации Random из вашего Change_color метода должно работать.

private Random rand = new Random();
private Color[] colors = new Color[]
{
    Color.Red,
    Color.Blue,
    Color.Green
}    

private void But0_0_Click(object sender, RoutedEventArgs e)
{    
    for (int i = 1; i <= 20; i++)
    {
        var ele = MainGrid.FindName("But0_" + i);
        Button button = ele as Button;

        if (button != null)
        {
            Change_color(button);
        }
    }
}

private void Change_color(Button name)
{
    name.Background= new SolidColorBrush(colors[rand.Next(0, 3)]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...