【问题标题】:wpf checkbox selected when clicked outside of label在标签外单击时选中 wpf 复选框
【发布时间】:2016-03-03 00:55:58
【问题描述】:

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

【问题讨论】:

    标签: wpf checkbox


    【解决方案1】:

    如果您将列定义宽度设置为“自动”,那么列将调整大小以适应 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 的边界框现在就在检查和标签周围,而不是第二个显示的列的整个宽度。

    正确行为:

    错误行为:

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-10-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-11
          • 2015-01-03
          相关资源
          最近更新 更多