单击标签外部时选中的wpf复选框

tim*_*tim 6 wpf checkbox

似乎我的复选框宽度延伸到包含它的网格单元格的范围.因此,如果您检查复选框标签右侧的方式,它仍会切换值.有没有办法让复选框仅在单击标签或复选框时切换,而不对复选框的宽度值进行硬编码?

小智 5

HorizontalAlignmentCheckBox 的默认值是Stretch。尝试将其设置为Left// 。RightCenter


Chr*_*isF 4

如果将列定义宽度设置为“自动”,则列的大小将调整以适合CheckBox.

但是,这可能会破坏您的布局。

另一种方法是将 包装CheckBoxStackPanel.

    <Grid Margin="10,10,10,10" Name="grid1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <TextBlock Text="Hello"/>
        <StackPanel Grid.Column="1" Orientation="Horizontal">
            <CheckBox Content="Click Me"/>
        </StackPanel>
        <Button Grid.Column="2" Content="Press Me"/>
    </Grid>
Run Code Online (Sandbox Code Playgroud)

正如您从第一个屏幕截图中看到的那样,边界框CheckBox现在正好位于支票和标签周围,而不是第二个屏幕截图所示的列的整个宽度。

正确的行为:
正确的行为
不正确的行为:
不正确的行为