2016-04-05 7 views
1

RadioCheckBoxのバリエーションは、ボタンと視覚的に似ています。この動作によりWPFのボタンから継承されたユーザーコントロール

:もう一度クリック状態は、元のブラシに未チェックとバックグラウンドターンに変更されたときに
ボタンがクリックされると、それがチェックされた状態に変化は、背景は、変更されました。

私の戦略はユーザーコントロールを作成することでした。しかし、私のコントロールはボタンにほぼ等しいので、継承を使用することは意味があります。

私の質問は
ボタンから継承するユーザーコントロールを作成することはできますか?もしそうなら、それは良いアプローチですか?どうしたらいいですか?

+1

['ToggleButton'](' https://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.togglebutton(v = vs.110).aspx) IsChecked'である。例えば、 [this](http://stackoverflow.com/a/15315930/1997232)。 – Sinatr

+0

@Sinatrおそらくスニペットコードでこれを答えに入れることができますか? –

+0

'ToggleButton'は本当にあなたの要求に合っています。 XAML StepUp

答えて

3

1つの可能なアプローチは、ToggleButtonを使用することであるが、IsCheckedtrueになったときに、完全にその外観を変更します。

<ToggleButton> 
    <ToggleButton.Style> 
     <Style TargetType="ToggleButton"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate> 

         <!-- IsChecked == false template --> 

        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
      <Style.Triggers> 
       <Trigger Property="IsChecked" Value="True"> 
        <Trigger.Setters> 
         <Setter Property="Template"> 
          <Setter.Value> 
           <ControlTemplate> 

            <!-- IsChecked == true template --> 

           </ControlTemplate> 
          </Setter.Value> 
         </Setter> 
        </Trigger.Setters> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ToggleButton.Style> 
</ToggleButton> 

利用2つの異なるテンプレート(例えば<TextBlock Text="On" /><TextBlock Text="Off" />)、それがどのように動作するかを確認します。

1

WPFトグルボタンを使用できます。

+0

どうすればいいですか?「ツールボックス/すべてのWPFコントロール」を見て、このToggleButtonを見つけることができません。私はVisual Studio 2015コミュニティを使用しています。このアイテムを表示させるには何かする必要がありますか? –

関連する問題