我有很多情况下,我有面板或网格自动调整大小,但如果他们包含TextBox
TextWrapping="Wrap"
,TextBox
继续扩大面板/网格的权利真正需要很久之前,如图像如下:如何优先考虑WPF文本框自动大小?
我所希望做的是有TextBox
通过环绕文字填写其面积它试图向右展开之前。这个问题的一个简单的例子是:
<Grid>
<Grid Background="Black" />
<Grid VerticalAlignment="Top" HorizontalAlignment="Left" Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBox TextWrapping="Wrap" Height="120" MinWidth="200" />
</Grid>
</Grid>
我发现SO here过类似的问题,但最好的解决方案张贴并没有让TextBox
扩大。该解决方案是这样的:比修改行为延伸TextBox
其他
<Grid>
<Grid Background="Black">
</Grid>
<Grid VerticalAlignment="Top" HorizontalAlignment="Left" Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Border BorderThickness="0" x:Name="border" Margin="0.5" />
<TextBox TextWrapping="Wrap" Height="120" MinWidth="200" Width="{Binding ActualWidth, ElementName=border}" />
</Grid>
</Grid>
任何想法?谢谢!
确保我明白了这个问题:你是否在说如果文本框可以支持10行文本,你希望它只在第11行输入时才开始水平扩展? – sellmeadog
@crazyarabian,正确的,我只想在输入第n行(超出可见范围)时水平展开。就像某种方式,如果我可以触发文本框想要垂直滚动时,然后允许展开。 –
为什么你想让文本框水平展开?从可用性的角度来看,这没有多大意义,似乎令人困惑,因为预期的行为可能是a)垂直扩展或b)垂直滚动 – sellmeadog