2009-08-11 15 views
0

再生/一時停止をしようとしていますButtonPlay Buttonをクリックすると、StartStopWatchコマンドにバインドされます。 Play Buttonは、PauseStopWatchコマンドにバインドするPause Buttonに変更されます。 私の問題はです。私はそれが持っているスタイルを維持し、それらを交互に変える方法を知らない。現在、私は2つの異なるボタンを持っていますが、それらを一緒にマージして1つにしたいと思います。 私のボタンは以下の通りです。私はMouseClickにしたい、それはまた変更!ありがとう!windows WPFとXAMLボタンの変更

<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"/> 

誰にも提案はありますか?

+0

を区別するために、なぜあなたはストップウォッチのための単一のコマンドを作成カントとCommandParameterとして真/偽渡すあなたが達成したいものを明確にしてください。あなたは、あなたのボタンのスタイルとツールヒント(スタイルBTWの一部にすることができます)を動的に切り替えたいですか? –

+0

ボタンがクリックされると、それが変わります。 例。 再生ボタンがあります。 再生ボタンをクリックすると、一時停止ボタンに変わります。 ポーズボタンをクリックすると、再生ボタンに変わります。 しかし、そのプレイ中は、コマンドプレイにバインドされます。 コマンドを一時停止すると一時停止します。 また、私は自分のボタンに同じスタイルを維持しようとしています。私は赤と緑のボタンを持っています。赤=停止し、緑色=行く。 –

答えて

1

簡単な方法は、ToggleButtonを使用して、CheckedおよびUnChecked状態を利用することです。コマンドについてその に基づいたControlTemplateのテーマを変更することができ、実行

<ToggleButton Name="yourToggleButton" 
    Command="{Binding StartStopCommand}" 
    CommandParameter="{Binding ElementName= yourToggleButton, Path=IsChecked}"/> 
0

2つの状態にあるボタンがある場合は、ToggleButtonを使用し、すべてIsCheckedプロパティにバインドすることを検討してください。特に、IsCheckedに応じてボタンのStyleをバインドすることができます(コンバーターを使用)。IsCheckedの値に応じて、スタイル内のトリガーを使用して(ツールチップを含む)外観を変更することができます。

関連する問題