WPF点击标签更改复选框isChecked属性

时间:2013-02-26 10:48:18

标签: wpf checkbox label ischecked

我是WPF的新手并尝试(在我看来)一个简单的任务,但我没有得到它。即使谷歌也不会帮助我,或者我提出了错误的问题。

我有一个复选框和一个标签;我希望点击标签可以更改复选框的isChecked属性。

我想在XAML中完全执行此操作而不需要代码,因为我希望保持代码隐藏在不必要的代码之后。请不要讨论这一点。我知道这是代码背后的一行代码!

在标签上使用事件设置器并不能解决问题,因为您只能设置处理程序(当然在代码后面)。使用故事板无济于事,因为无法检查属性的实际值。

有没有人有好的提示?也许我忽视了一些事情。请提供解决方案的一些代码段。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:6)

你也可以这样做:

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

但有一个限制是文本必须位于复选框的右侧。