Оба из эти вопросы говорят о том, что для привязки растягивающегося текстового поля к ширине / высоте контейнера, а не к росту при вводе пользователем необходимо использовать рамку-заполнитель и привязать к ее фактической высоте /width.
Хотя это только вид работ. Он останавливает рост текстового поля при вводе пользователем, но размер текстового поля изменяется только для увеличения, но никогда не уменьшается для уменьшения. Если вы используете RenderSize, он будет расти и уменьшаться, но он будет расти вместе с пользовательским вводом. Кроме того, добавление дополнительного элемента для привязки ширины / высоты кажется немного странным. Есть ли лучшее решение?
Похоже, что это должно быть поведение растяжения текстовых полей по умолчанию.
РЕДАКТИРОВАТЬ : Вот XAML (включая предложение Аарона ниже)
<TabControl HorizontalAlignment="Stretch" Margin="5,15,5,5" Name="tabControl2" VerticalAlignment="Stretch" MinHeight="80">
<TabItem Header="Description" Name="tabItem2" FontSize="14" IsEnabled="True">
<Grid>
<Border Name="b_desc"/>
<TextBox HorizontalAlignment="Stretch" Margin="0" Name="textBox5"
VerticalAlignment="Stretch" FontSize="12" TextWrapping="Wrap"
AutoWordSelection="True" VerticalScrollBarVisibility="Auto"
AcceptsReturn="True"
Width="{Binding ElementName=b_desc, Path=ActualWidth}"
Height="{Binding ElementName=b_desc, Path=ActualHeight}"
MaxWidth="{Binding ElementName=b_desc, Path=Width}"
MaxHeight="{Binding ElementName=b_desc, Path=Height}" />
</Grid>
</TabItem>
</TabControl>
EDIT2 : Я не уверен, имеет ли это значение, но эти элементы являются содержимым TabControl, привязанным к коллекции ViewModels. См. В этой статье пример шаблона.