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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF点击标签更改复选框isChecked属性[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

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

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

我想在XAML中完全做到这一点,没有代码,因为我希望保持代码隐藏不必要的代码。请不要讨论这一点。我知道这是代码背后的一行代码!

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

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

答案

将此代码粘贴到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>
另一答案

你也可以这样做:

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

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

以上是关于WPF点击标签更改复选框isChecked属性[重复]的主要内容,如果未能解决你的问题,请参考以下文章

WPF:将复选框的可点击区域限制为仅限复选框

WPF MVVM中的绑定复选框问题

WPF--复选框

WPF--复选框

WPF--复选框

为啥 CheckBox.IsChecked 属性为 Nullable<bool>?