我在这个布局中有这些简单的wpf
控件。我的问题是来自TextBox
的额外像素在哪里。看起来TextBox
不尊重Width='Auto'
属性。
我希望Grid Column 0的宽度与TextBox的宽度完全相同。
<Grid ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel>
<TextBox Text="This TextBox located in Row 0 Column 0"
Width="Auto"></TextBox>
</StackPanel>
<TextBox Grid.Row="1"
Text="This TextBox located in Row 1 Column 0 with Column Span of 2"
Grid.ColumnSpan="2"></TextBox>
</Grid>
答案 0 :(得分:2)
WPF的布局规则有时令人困惑,不是吗? :)
此处的问题是您已为两列设置宽度Auto
。 Grid
只会在需要或有充分理由的情况下减少列宽。由于您也使用Auto
作为第二列,并且由于该列不需要增加大小以适应较长的第二行文本,因此您可以获得所看到的大小。
如果您确实希望第一列尽可能小,请将第二个列宽设置为*
而不是Auto
。 (或者只是省略Width
属性... *
是默认属性。)