У меня есть несколько ситуаций, когда у меня есть панели или сетки, которые изменяют размер автоматически, но если они содержат 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
с измененным поведением?