首页 > 解决方案 > 如何使标签与复选框处于同一级别,但不在WPF中的标签单击上切换?

问题描述

我想制作仅在直接单击复选框时才会切换的复选框列表。

不幸的是,如果我这样做:

                    <ListBox Name="LanguagesListBox">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <ListBoxItem>
                                    <StackPanel Orientation="Horizontal">
                                        <CheckBox/>
                                        <Label Content="{Binding InputLanguage.LayoutName}"/>
                                    </StackPanel>

                                </ListBoxItem>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

我得到的复选框没有与它的标签垂直对齐:

在此处输入图像描述

但如果我写

                  <ListBox Name="LanguagesListBox">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <ListBoxItem>
                                    <StackPanel Orientation="Horizontal">
                                        <CheckBox Content="{Binding InputLanguage.LayoutName}"/>

                                    </StackPanel>

                                </ListBoxItem>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

如果单击标签,我会得到复选框切换

在此处输入图像描述

如何获得两者?

标签: wpfxamlcheckbox

解决方案


这是复选框行为,因此您无法更改它。您必须创建一个用户控件来构建它。


推荐阅读