2009-06-18 22 views
9

ボタンのように見えるCheckBoxを作りたいと思います。私の最初の弱い試みは全く働かない。WPF:「プッシュ型」チェックボックスの作成方法

<CheckBox x:Name="test"> 
    Testing! 
    <CheckBox.Template> 
     <ControlTemplate> 
      <Button> 
       <ContentPresenter/> 
      </Button> 
     </ControlTemplate> 
    </CheckBox.Template> 
</CheckBox> 

のContentPresenterが機能していません(ボタンが空である)と、ボタンがクリックされたとき、にisCheckedプロパティはトグルしません。また、私は、IsCheckedがtrueのときにボタンが押されて見えるようにする方法を知らない。

答えて

13

ToggleButtonはあなたのニーズに合っていますか? CheckBoxはそれから派生しており、非常に似ています。

+0

はい、私は知りませんでしたTHER eは、ボタンのように見えるCheckBoxのために既に別のクラスでした。 – Qwertie

6

私はちょうど同じコメント:)

<ToggleButton Name="tb" Height="45" Width="45"> 
     <ToggleButton.Style> 
      <Style TargetType="{x:Type ToggleButton}"> 
       <Setter Property="Content" Value="False"/> 
       <Style.Triggers> 
        <Trigger Property="IsChecked" Value="True"> 
         <Setter Property="Content" Value="True"/> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </ToggleButton.Style> 
    </ToggleButton> 

そして今、あなたが望んでいたとして、CheckBoxコントロールの書き込みを開始しました:私は、トグルボタンが進むべき道であることに同意

<CheckBox> 
     <CheckBox.Template> 
      <ControlTemplate TargetType="CheckBox"> 
       <ToggleButton x:Name="toggleButton"> 
       </ToggleButton> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsChecked" Value="True" SourceName="toggleButton"> 
         <Setter Property="Content" Value="True"/> 
        </Trigger> 
        <Trigger Property="Content" Value="True"> 
         <Setter Property="IsChecked" Value="True"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </CheckBox.Template> 
    </CheckBox> 
2

を、しかし、もしあなたのコンテンツがあなたの例に表示したい、これにあなたのContentPresenter宣言を変更してみてください:

<ContentPresenter Content="{TemplateBinding Content}" /> 
+0

これは、ControlTemplate宣言を Qwertie

関連する問題