смена окон WPF и XAML - PullRequest
       16

смена окон WPF и XAML

0 голосов
/ 12 августа 2009

Я пытаюсь сделать воспроизведение / пауза Button. При нажатии Play Button он будет привязан к команде StartStopWatch. Play Button изменится на Pause Button, который будет привязан к команде PauseStopWatch. Моя проблема Я не знаю, как сохранить стиль и изменить их взаимозаменяемо. В настоящее время у меня есть две разные кнопки, но я хочу объединить их и объединить в одну. Мои кнопки следующие. Я хочу, чтобы он был на MouseClick, он тоже меняется! Спасибо!

<Button x:Name="StartButton" Style="{DynamicResource StartTimerButton}"
        Width="24" Height="24" Margin="5,0,5,0" ToolTip="Start Timer"
        Command="{Binding StartStopWatch}" VerticalAlignment="Center"/>

<Button x:Name="StopButton" Style="{DynamicResource StopTimerButton}"
        Width="20" Height="20" Margin="0,0,5,0" ToolTip="Stop Timer"
        Command="{Binding StopStopWatch}" VerticalAlignment="Center"/>

У кого-нибудь есть предложения?

Ответы [ 2 ]

1 голос
/ 12 августа 2009

Самый простой способ - использовать ToggleButton и использовать его состояния Checked и UnChecked. Вы можете изменить тему ControlTemplate на основе этого Для команды, почему вы не можете создать одну команду для StopWatch и передать true / false в качестве CommandParameter, чтобы различить выполнение

<ToggleButton Name="yourToggleButton"
    Command="{Binding StartStopCommand}"
    CommandParameter="{Binding ElementName= yourToggleButton, Path=IsChecked}"/>
0 голосов
/ 12 августа 2009

Если у вас есть кнопка, которая может находиться в двух состояниях, рассмотрите возможность использования ToggleButton и привяжите все, что вы хотите, к ее свойству IsChecked. В частности, вы можете привязать кнопку Style в зависимости от IsChecked оптом (с помощью конвертера) или просто использовать триггеры внутри вашего стиля для изменения внешнего вида (включая всплывающую подсказку) в зависимости от значения IsChecked.

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