У меня есть проблема с TextBox в приложении ...WPF: TextBox расширения с окружающей сеткой, но не с текстом
окна имеет сетку с двумя колонками. Левый столбец содержит элемент управления с постоянной шириной, но с адаптацией высоты. Правый столбец содержит TextBox, который занимает все оставшееся пространство в Grid (и, тем самым, в окне).
Сетка имеет минимальную ширину и высоту и завернута в ScrollViewer. Если пользователь изменяет размер окна меньше минимальной ширины/высоты сетки, отображаются полосы прокрутки.
Именно так я и хочу быть. Однако возникает проблема, когда пользователь начинает вводить текст. Если текст длинный, чтобы вписаться в одну строку в TextBox, я хочу, чтобы текст был завершен. Поэтому я устанавливаю TextWrapping = "Wrap" в TextBox. Но так как TextBox имеет автоматическую ширину и обернут в ScrollViewer (его фактически всю сетку, которая завернута), TextBox просто продолжает расширяться вправо.
Я хочу, чтобы TextBox расширялся, если окно расширено, но я не хочу, чтобы TextBox расширялся по тексту. Скорее текст должен быть обернут внутри доступного TextBox. Если текст не соответствует высоте TextBox, в TextBox должна отображаться полоса прокрутки.
Есть ли способ сделать это?
Ниже приведен код, который показывает мою проблему.
<Window x:Class="AdaptingTextBoxes.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="300" Width="400" Background="DarkCyan">
<Grid Margin="10" Name="LayoutRoot">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Grid MinWidth="300" MinHeight="200">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Margin="0,0,10,0" Content="Button" Width="100" />
<TextBox Grid.Column="1" AcceptsReturn="True" TextWrapping="Wrap" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto" />
</Grid>
</ScrollViewer>
</Grid>
</Window>
Сократите название на что-то значимое, мои глаза болят! –
Священный вопрос в заголовке темы, Бэтмен! –
Вы заработали самый длинный титульный значок :) –