Разделить одну кнопку на две отдельные кнопки после события щелчка в WPF - PullRequest
0 голосов
/ 10 февраля 2020

Мне просто любопытно, можно ли заменить кнопку на две кнопки, которые после события щелчка занимают место оригинальных отдельных кнопок? Также после события нажатия одной из двух кнопок можно ли вернуться к исходному виду, где есть только одна кнопка?

Таким образом, это выглядит как деление одной кнопки на две кнопки, а затем слияние двух кнопок в одну кнопку снова.

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

добро пожаловать в StackOverflow. Да, это вполне возможно, и в простейшем виде даже не так сложно. Это выглядит примерно так:

  1. Создайте пользовательский интерфейс с 3 кнопками.
  2. Скройте две кнопки, оставьте последнюю видимой.
  3. При нажатии на видимую нажмите кнопку, сделайте две другие кнопки видимыми и скройте нажатую кнопку.
  4. При нажатии одной из двух кнопок отмените вышеуказанную процедуру.

Конечно, если вы хотите добавить такие вещи, как анимация и так далее, это будет намного сложнее.

0 голосов
/ 11 февраля 2020

в .xaml

        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Button x:Name="btn_big" Grid.ColumnSpan="2" Click="Click_big"/>
            <Button x:Name="btn_small1" Grid.Column="1" Visibility="Hidden" Click="Click_small"/>
            <Button x:Name="btn_small2" Grid.Column="2" Visibility="Hidden" Click="Click_small"/>
        </Grid>

в .cs

    private void Click_big(object sender, MouseButtonEventArgs e)
    {
      btn_big.Visibility=Visibility.Hidden;
      btn_small1.Visibility=Visibility.Visible;
      btn_small2.Visibility=Visibility.Visible;          
    }

    private void Click_small(object sender, MouseButtonEventArgs e)
    {
      btn_big.Visibility=Visibility.Visible;
      btn_small1.Visibility=Visibility.Hidden;
      btn_small2.Visibility=Visibility.Hidden;          
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...