从停止生长WPF的TextBox(Stop WPF TextBox from growing)

2019-09-17 07:04发布

我已经花了两个小时研究如何避免当一个长文本已经输入了我的WPF TextBox控件的增长,但我一直没能做到这一点,连我看了一些关于它的答案,像这样的:

停止-WPF的文本框,从成长-与文本

WPF的允许,文本框将要调整大小的但不至发展上,用户输入

WPF的怎么到停止文本从-自动调整大小

我的代码如下:

<Grid>
      <TextBox Margin="6,6,8,28" Name="textBox1" AcceptsTab="True" TextWrapping="Wrap" VerticalScrollBarVisibility="Visible" AcceptsReturn="True"/>
      <CheckBox Content="Case sensitive" HorizontalAlignment="Left" Margin="7,0,0,2" Name="checkBox1" Height="16" VerticalAlignment="Bottom" />
</Grid>

我试过的一件事是:

MaxWidth={Binding ElementName=MyGrid, Path=ActualWidth} 

但它没有为我工作。

我也试过以下属性添加到网格:

ScrollViewer.HorizontalScrollBarVisibility="Disabled"

要么

<Border x:Name="b" Grid.Column="1"/>
<TextBox Width="{Binding ActualWidth, ElementName=b}" ....... />

但它并不能工作。

我需要在用户伸展的窗口我的控制生长,而不是在一个长的文本插入。

你有这个问题,我可能会尝试不同的答案吗?

UPDATE!

我注意到一些很奇怪:如果我手动拉伸窗口,在文本框中停止时长文本插入增长。 没关系。 但我要做到这一点,而不必每次运行程序的时候拉伸窗口

Answer 1:

删除文本框边框和放入的ScrollViewer。



Answer 2:

尝试下一步:

<ScrollViewer MaxHeight={Binding ElementName=MyGrid, Path=ActualWidth} BorderThickness="0">                    
      <TextBox Margin="6,6,8,28" Name="textBox1" AcceptsTab="True" TextWrapping="Wrap" AcceptsReturn="True"/>          
</ScrollViewer>


文章来源: Stop WPF TextBox from growing
标签: wpf textbox