Вам нужны следующие опции ...
Ваше определение второй строки должно быть Height="*"
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
, а вашему ListBox нужно ColumnSpan="2"
<ListBox x:Name="Things"
DisplayMemberPath="ThingName"
SelectedItem="CurrentThing"
Grid.ColumnSpan="2"
Grid.Column="0"/>
Также вы сказали, что использовали DockPanel ... с док-панелью еще проще.Все, что вам нужно, это установить LastChildFill = "True" и добавить свой ListBox
как последний дочерний элемент в панели док-станции.
<DockPanel LastChildFill="True">
<Grid DockPanel.Dock="Top" HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<StackPanel Margin="5 0 0 0" Grid.Column="0"
HorizontalAlignment="Stretch">
<TextBlock Text="Things:"/>
<TextBox HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"/>
</StackPanel>
<StackPanel Margin="5 0 0 0" Grid.Column="1">
<Button x:Name="AddThing" Content="Add" Margin="0 0 0 0"/>
<Button x:Name="RemoveThing" Content="Remove"
Margin="0 5 0 0"/>
</StackPanel>
</Grid>
<ListBox x:Name="Things" DisplayMemberPath="ThingName"
SelectedItem="CurrentThing" />
</DockPanel>