Вы можете определить высоту строки в сетке, а затем поместить расширитель в нижний ряд и позволить сетке разобрать его.
* - эта высота составляет одну единицу, где общая высота делится на количество единиц и распределяется. Таким образом, если высота была 300, и было два ряда, 2 * и *, то они были бы 200 и 100 каждый.
Авто - это минимальная высота содержимого.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Canvas Grid.Row="0" Background="LightBlue" />
<Expander Grid.Row="1">
<Canvas Background="LightGreen" Height="200" />
</Expander>
</Grid>