2013-02-26 72 views
8

我是新來的WPF和嘗試(在我看來)一個簡單的任務,但我沒有得到它。即使谷歌不會幫助我,或者我問了錯誤的問題。WPF點擊標籤更改複選框isChecked屬性

我有一個複選框和一個標籤;我希望點擊標籤可以更改複選框的isChecked屬性。 我想在XAML中完全做到這一點,並且沒有代碼,因爲我希望將代碼保留在文件中以清除不必要的代碼。請不要在這一點上討論。我知道這是代碼背後的一行代碼!

在標籤上使用事件設置器並不能解決問題,因爲您只能設置處理程序(當然在代碼後面)。使用故事板不會有幫助,因爲無法檢查財產的實際價值。

有沒有人有一個很好的提示?也許我忽略了一些東西。請爲解決方案提供一些代碼片段。

+0

[更改標籤的行爲以支持通過單擊WPF中的切換]的可能重複(http://stackoverflow.com/questions/6160566/change-a-labels-behavior-to-support-toggling-by-click- in-wpf) – MyDaftQuestions 2015-10-27 10:46:01

回答

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 2013-02-26 11:04:53

+2

我發現在Windows Phone上的WinRT XAML應用程序中,我不需要使用該模板 - 默認模板工作正常(關鍵是內容屬性)。 – 2014-10-13 23:37:03

3

你也可以這樣做:

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

一個限制是,雖然該文本將不得不在複選框的右側。

+0

哇,謝謝,我一直認爲必須有一個更簡單的解決方案,在這裏! – SpeziFish 2017-10-19 12:33:29

+0

我喜歡這個。但是,標籤和複選框之間的對齊會稍微偏離。 – user3382285 2018-03-09 03:21:06

相關問題