Только две кнопки выбора радио - PullRequest
0 голосов
/ 17 мая 2018

У меня проблема, когда работают только две из моих кнопок радио, но все три сделаны одинаково.

Не уверен, что я что-то упустил или что. Двое прекрасно исполняют, третий не так уж и много.

Установка других кнопок на ноль была предложением моего коллеги, но все равно ничего. Для простоты я разбавил это изменением фона окна с цветами. Я не очень знаком с этим языком, поэтому любая помощь приветствуется.

        private void Button_Click_1(object sender, RoutedEventArgs e)
    {
            RadioButton Green = new RadioButton();
            RadioButton Red = new RadioButton();
            RadioButton Blue = new RadioButton();
            Green.Content = "Green";
            Red.Content = "Red";
            Blue.Content = "Blue";
            LayoutRoot.Children.Add(Green);
            LayoutRoot.Children.Add(Blue);
            LayoutRoot.Children.Add(Red);
            Green.Margin = new Thickness(X, Y, 0, 0);
            Red.Margin = new Thickness(X, Y, 0, 0);
            Blue.Margin = new Thickness(X, Y, 0, 0);
            Green.Checked += delegate
            {
                Window.Background = Brushes.Green;
                Red = null;
                Blue = null;

            };
            Red.Checked += delegate
            {
                Window.Background = Brushes.Red;
                Green = null;
                Blue = null;
            };
            Blue.Checked += delegate
            {
                Window.Background = Brushes.Blue;
                Green = null;
                Red = null;
            };
    }

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Хорошо, оказалось, что кнопки были неограниченными, поэтому их хитбоксы перекрывались.Просто добавив следующие определения исправили это:

Red.Height = 15;
Red.Width = 60;
Red.HorizontalAlignment = HorizontalAlignment.Left;
Red.VerticalAlignment = VerticalAlignment.Top;
0 голосов
/ 17 мая 2018

Дайте вашим радио кнопкам GroupName. Убедитесь, что у них одинаковые GroupName, и тогда они будут взаимоисключающими в группе:

var button = new RadioButton();
button.GroupName = "SomeGroup";

Пожалуйста, смотрите этот учебник для более подробной информации.

Еще одно замечание, я не уверен, почему вы делаете другие переключатели null при нажатии одной из них в обработчике Checked.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...