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

时间:2010-12-05 18:04:39

标签: wpf checkbox

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

3 个答案:

答案 0 :(得分:4)

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

然而,这可能会破坏你的布局。

另一种方法是将CheckBox包裹在StackPanel

    <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>

从第一个屏幕截图中可以看出,CheckBox的边界框现在位于检查和标签的周围,而不是第二个显示的列的整个宽度。

正确的行为:
correct behaviour
行为不正确:
incorrect behaviour

答案 1 :(得分:4)

CheckBox的默认HorizontalAlignmentStretch。尝试将其设置为Left / Right / Center

答案 2 :(得分:3)

它可能真的伸展得那么宽。尝试将一些背景应用于CheckBox - 这将显示它在实际中有多宽。也可以使用Horizo​​ntalAlignment。