3

長いテキストが入力されたときに WPF TextBox コントロールが大きくなるのを回避する方法を調査するのに 2 時間を費やしましたが、次のようないくつかの回答を読んでも、それを行うことができませんでした。

停止-wpf-textbox-from-growing-with-text

wpf-allow-textbox-to-be-resized-but-to-grow-on-user-input

wpf-how-to-stop-textbox-from-autosizing

私のコードは次のとおりです。

<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>

私が試したことの1つは次のとおりです。

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

しかし、それは私にはうまくいきませんでした。

また、次のプロパティをグリッドに追加しようとしました:

ScrollViewer.HorizontalScrollBarVisibility="Disabled"

または

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

しかし、それもうまくいきませんでした。

ユーザーがウィンドウを拡大したときにコントロールを拡大する必要がありますが、長いテキストが挿入されたときは拡大しません。

この問題について、私が試すかもしれない別の答えはありますか?

アップデート!

非常に奇妙なことに気付きました。ウィンドウを手動で拡大すると、長いテキストが挿入されるとテキスト ボックスの拡大が停止します。それはいいです。しかし、プログラムを実行するたびにウィンドウを拡大することなく、これを達成する必要があります

4

2 に答える 2

0

TextBox の境界線を削除し、ScrollViewer に配置します。

于 2012-05-16T22:28:27.293 に答える
0

次にやってみてください:

<ScrollViewer MaxHeight={Binding ElementName=MyGrid, Path=ActualWidth} BorderThickness="0">                    
      <TextBox Margin="6,6,8,28" Name="textBox1" AcceptsTab="True" TextWrapping="Wrap" AcceptsReturn="True"/>          
</ScrollViewer>
于 2012-05-17T14:18:57.433 に答える