У меня есть TextBox
, который я хочу быть многострочным и автоматически изменять размер до родительского:
<TextBox Grid.Row="0" Grid.Column="0"
AcceptsReturn="True"
HorizontalAlignment="Stretch"
IsEnabled="{Binding CanModify}"
Margin="0"
TextWrapping="Wrap"
Text="{Binding Comment, UpdateSourceTrigger=PropertyChanged}"
VerticalScrollBarVisibility="Auto"
VerticalAlignment="Stretch"
/>
Большинство предложений по автоматическому переключению TextBlock
на новую строку касаются добавления TextWrapping="Wrap"
к его свойствам, чтобы предотвратить растяжение, обычно это AcceptsReturn="True"
, VerticalScrollBarVisibility="Auto"
или вручную width
. Как видите, единственное, что я еще не пробовал, это ширина, но в моем случае TextBox
должно соответствовать контейнеру, ширина которого неизвестна (также зависит от его родителя). Установка свойств, как в листинге, не помогает: курсор никогда не перемещается на новую строку и растягивает TextBox
, а также все окно.
Что я могу сделать, чтобы предотвратить растяжение этого TextBox
и автоматически перемещать текст на новую строку?
EDIT : Контейнер - это TabControl
. Вкладка, содержащая:
<TabItem Header="{some binding}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition SharedSizeGroup="TabHeight" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="TabWidth" />
</Grid.ColumnDefinitions>
<TextBox Grid.Row="0" Grid.Column="0"
AcceptsReturn="True"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
IsEnabled="{Binding CanModify}"
Margin="0"
Style="{some style}"
TextWrapping="Wrap"
Text="{Binding Comment, UpdateSourceTrigger=PropertyChanged}"
VerticalScrollBarVisibility="Auto"
/>
</Grid>
</TabItem>
Это TabControl
лежит в простом Grid
без каких-либо специфических c стилей ограничений. Увы, я не могу поделиться всем кодом стилей, примененным к TabControl
, но я был бы очень признателен за любые идеи, которые можно попробовать.
SharedSizeGroups
, как вы видите, предназначены для растягивания всего TabControl
на самую широкую вкладку, предотвращая ее изменение размера переключателями вкладок и доступ к ней только с другой вкладкой (в этой TabControl
их две).