Чтобы воспроизвести проблему: Спам-письмо (например), пока вы не начнете попадать в правую область решетки. Сетка решетки перемещается за пределы минимальной ширины правой стороны.Как остановить многострочное текстовое поле от перемещения GridSplitter?
Ожидаемое поведение: Переходя по пределу ширины при вводе текста (введите/вставить) в текстовое поле, не перемещайте сетку gridsplitter, а сразу активируйте полосу прокрутки.
условия
- текстовое поле должно быть горизонтально и вертикально прокручиваемым
- The TextBox и ScrollViewer должен оставаться динамически значительное - нет MaxWidth предела. Это связано с тем, что в реальном приложении пользователь может изменять размер приложения, что приводит к изменению размера текстового поля.
Код:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10000*" MinWidth="25"/>
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" MinWidth="25" />
</Grid.ColumnDefinitions>
<ScrollViewer HorizontalScrollBarVisibility="Visible">
<TextBox AcceptsReturn="True" AcceptsTab="True" TextWrapping="Wrap" />
</ScrollViewer>
<GridSplitter Background="Black"
BorderBrush="White"
BorderThickness="1,0,0,0"
ResizeDirection="Columns"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Grid.Column="1" />
<Grid Background="Red" Grid.Column="2" />
</Grid>