2013-02-26 16 views
8

私はWPFを使い慣れていて、(私の意見では)簡単な作業を試してみましたが、それは得られませんでした。 Googleでさえ助けにならない、あるいは間違った質問をしました。WPFラベル変更チェックボックスのisCheckedプロパティをクリックします。

私はチェックボックスとラベルを持っています。ラベルをクリックすると、チェックボックスのisCheckedプロパティが変更されます。 不要なコードをファイルの後ろに残しておきたいので、コードなしでXAMLでこれを完全に実行したいと思います。この点については議論しないでください。私はそれがコードの中でこれを行うコードの一行だと知っています!

ラベルにイベントセッターを使用しても、ハンドラー(もちろんコードの背後にある)しか設定できないため、問題は解決しません。ストーリーボードを使用しても、プロパティの実際の値をチェックする方法がないため、役立たない。

誰かが良いヒントを持っていますか?たぶん私は何か見落としたでしょう。ソリューションのコードスニペットをご記入ください。

+0

[WPFのクリックでトグルをサポートするようにラベルの動作を変更する]の可能な複製(http://stackoverflow.com/questions/6160566/change-a-labels-behavior-to-support-toggling-by-click- in-wpf) – MyDaftQuestions

答えて

8

あなたがラベルをクリックすると、チェックボックスを切り替えていることがわかりますkaxaml

にこのコードを貼り付けます。あなたもこれを行うことができます

[ケントによってこのSO answerを参照してください]

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <StackPanel> 
    <CheckBox IsChecked="{Binding IsChecked, ElementName=checkbox}" Content="Hello"> 
     <CheckBox.Template> 
      <ControlTemplate TargetType="CheckBox"> 
       <ContentPresenter/> 
      </ControlTemplate> 
     </CheckBox.Template> 
    </CheckBox> 
    <CheckBox x:Name="checkbox" Content="A normal checkbox"/> 
</StackPanel> 
</Page> 
+0

私は本当にそれを見落とした...ありがとう! – sandkasten

+2

Windows Phone上のWinRT XAMLアプリケーションでは、テンプレートを使用する必要はありませんでした。デフォルトテンプレートはうまくいきました(キーは 'Content'プロパティでした)。 –

3

:しかし

<CheckBox> 
    <Label Content="Your text here"/> 
</CheckBox> 

1つの制限は、テキストは、チェックボックスの右側になければならないだろうということです。

+0

うわー、ありがとう、私はいつももっと簡単な解決策が必要であると思っていました。 – SpeziFish

+0

私はこれが大好きです。ただし、ラベルとチェックボックスの間で少しずれています。 – user3382285

関連する問題