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

问题描述 投票:8回答:2

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

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

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

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

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

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

wpf checkbox label ischecked
2个回答
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>

6
投票

你也可以这样做:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.