У меня есть ряд ситуаций, когда у меня есть панели или сетки, размер которых изменяется автоматически, но если они содержат TextBox
с TextWrapping="Wrap"
, TextBox
продолжает расширять панель / сетку вправо задолго до того, как это действительно нужно, например, на изображении ниже:
Я хочу, чтобы TextBox
заполнил свою область, обернув текст, прежде чем он попытается развернуться вправо. Упрощенный пример проблемы:
<Grid>
<Grid Background="Black" />
<Grid VerticalAlignment="Top" HorizontalAlignment="Left" Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBox TextWrapping="Wrap" Height="120" MinWidth="200" />
</Grid>
</Grid>
Я нашел аналогичный вопрос о переполнении стека здесь, но лучшее опубликованное решение не позволило TextBox
расшириться. Это решение было примерно таким:
<Grid>
<Grid Background="Black">
</Grid>
<Grid VerticalAlignment="Top" HorizontalAlignment="Left" Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Border BorderThickness="0" x:Name="border" Margin="0.5" />
<TextBox TextWrapping="Wrap" Height="120" MinWidth="200" Width="{Binding ActualWidth, ElementName=border}" />
</Grid>
</Grid>
Есть какие-нибудь идеи, кроме расширения TextBox
измененным поведением?