WPF控件额外像素源
WPF control extra pixels source
我在这个布局中有这些简单的 wpf
控件。我的问题是 TextBox
中额外的像素来自哪里。看起来 TextBox
不尊重 Width='Auto'
属性.
我希望使 Grid Column 0 的宽度正好等于 TextBox 的宽度。
image of rendered code
<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>
WPF 的布局规则有时会令人困惑,不是吗? :)
这里的问题是您将两列的宽度都设置为 Auto
。 Grid
只会在需要或有充分理由的情况下减小列宽。由于您对第二列也使用了 Auto
,并且由于不需要增加该列的大小来适应较长的第二行文本,因此您得到了您所看到的大小。
如果您确实希望第一列尽可能小,请将 第二 列宽度设置为 *
而不是 Auto
。 (或者只是省略 Width
属性……*
是默认值。)
我在这个布局中有这些简单的 wpf
控件。我的问题是 TextBox
中额外的像素来自哪里。看起来 TextBox
不尊重 Width='Auto'
属性.
我希望使 Grid Column 0 的宽度正好等于 TextBox 的宽度。
image of rendered code
<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>
WPF 的布局规则有时会令人困惑,不是吗? :)
这里的问题是您将两列的宽度都设置为 Auto
。 Grid
只会在需要或有充分理由的情况下减小列宽。由于您对第二列也使用了 Auto
,并且由于不需要增加该列的大小来适应较长的第二行文本,因此您得到了您所看到的大小。
如果您确实希望第一列尽可能小,请将 第二 列宽度设置为 *
而不是 Auto
。 (或者只是省略 Width
属性……*
是默认值。)