解决方法
如果将列定义宽度设置为“自动”,则将调整列的大小以适合CheckBox.
但是,这可能会破坏您的布局.
另一种方法是将CheckBox包装在StackPanel中.
<Grid Margin="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的边界框现在位于检查和标签周围,而不是第二个显示的列的整个宽度.
正确的行为:
行为不正确: