我是WPF的新手并尝试(在我看来)一个简单的任务,但我没有得到它。即使谷歌也不会帮助我,或者我提出了错误的问题。
我有一个复选框和一个标签;我希望点击标签可以更改复选框的isChecked
属性。
我想在XAML中完全执行此操作而不需要代码,因为我希望保持代码隐藏在不必要的代码之后。请不要讨论这一点。我知道这是代码背后的一行代码!
在标签上使用事件设置器并不能解决问题,因为您只能设置处理程序(当然在代码后面)。使用故事板无济于事,因为无法检查属性的实际值。
有没有人有好的提示?也许我忽视了一些事情。请提供解决方案的一些代码段。
答案 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>
但有一个限制是文本必须位于复选框的右侧。