我有一个WrapPanel
我已经放置了一些Grid
,我已经放置了一些TextBox
es,类似于以下内容:
<WrapPanel Orientation="Horizontal">
<!-- Other label / text box pair grids -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="FancyLabel" Margin="1,1,1,0"/>
<TextBox Name="FancyValue"
Grid.Column="1"
Margin="1,1,1,0"
Text="{Binding}"
MinWidth="45"
Width="Auto"
TextWrapping="Wrap"
AcceptsReturn="False" />
</Grid>
</WrapPanel>
如果用户输入的文字太长,而不是换行到额外的行,则TextBox
会将其宽度从屏幕上展开,而不是尊重TextWrapping
,类似于以下内容:
是否存在限制最大宽度的机制(最好没有数据绑定到ActualWidth
上的WrapPanel
)?
答案 0 :(得分:1)
感谢Rob DeLuca向我发送了一些在SO之外工作的东西:
将第二列的Auto
更改为*
而不是正确包装:
<WrapPanel Orientation="Horizontal">
<!-- Other label / text box pair grids -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" /> <!-- !!! -->
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="FancyLabel" Margin="1,1,1,0"/>
<TextBox Name="FancyValue"
Grid.Column="1"
Margin="1,1,1,0"
Text="{Binding}"
MinWidth="45"
Width="Auto"
TextWrapping="Wrap"
AcceptsReturn="False" />
</Grid>
</WrapPanel>