Вы можете значительно упростить разметку, используя только сетки.
Похоже, вы неправильно поняли, как работает * gridmeasure.
Я думаю, что приведенная ниже разметка делает то, что вы пытаетесьдостичь.Когда вы помещаете большинство элементов управления в сетку (ячейку), они расширяются и занимают все доступное пространство.Это то, что вы хотите здесь, поэтому все, что вам нужно, это сетки и ячейки.
* не является абстрактной мерой фактической высоты в том виде, как вы ее используете.У вас был контроль, охватывающий два ряда.Я упростил это, сделав один из рядов высотой 2 *.Если бы вы хотели два элемента управления в правом столбце рядом с ним, то, конечно, вам, вероятно, нужно 5 строк.Но у вас этого нет.
xmlns:local="clr-namespace:wpf_99"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525"
>
<Grid Background="Cyan" >
<local:UserControl2/>
</Grid>
</Window>
и
d:DesignHeight="450" d:DesignWidth="800">
<Grid Background="Beige" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBox x:Name="TextOutputAreaTextBox"
HorizontalAlignment="Stretch"
Margin="5"
VerticalAlignment="Stretch"
AcceptsReturn="True"
VerticalScrollBarVisibility="Auto"
TextWrapping="Wrap" />
<Button Content="Operation 2" Margin="5" Grid.Row="4"></Button>
<Button Content="Operation 3" Margin="5" Grid.Row="4" Grid.Column="1"></Button>
</Grid>
</UserControl>