Is there any way that I change a Label's behavior to support toggling by click in WPF?
i.e. that's Selector.IsSelected
property toggle between "True" and "False" by clicking?
Regards.
<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>
Note that the above template does not alter the appearance of the label based on whether it's checked or not. That might be something you'll need - hard to say without more information.
You would better use Checkbox for such behaviour and style it to your liking.
Remember controls in WPF represent behaviours not looks.
Just want to add the way more simple solution of mikelt21 in the duplicate post:
<CheckBox>
<Label Content="Your text here"/>
</CheckBox>
The simplest thing I can think of is:
<CheckBox Content="Text goes here"/>
It is built-in behavior and if you are happy with the placement of the text (at the right of the CheckBox at least in my locale) there's no reason to make it more complicated.
精彩评论