Вы должны иметь возможность использовать StackPanel с 2 детьми, сеткой и панелью. Установите начальную высоту панели на 0 . После нажатия кнопки установите высоту на то, что вам нужно (например, MyPanel.Height = 20). Возможно, вы захотите обернуть сетку в ScrollViewer, если это необходимо.
<StackPanel Orientation="Vertical">
<ScrollViewer Height="Auto" VerticalAlignment="Stretch">
<Grid Height="*" VerticalAlignment="Stretch" />
</ScrollViewer>
<ContentControl x:Name="MyPanel" Height="0" />
</StackPanel>
Возможно, вам придется поэкспериментировать с VerticalAlignment и Height = "Auto" или Height = "0", чтобы получить нужный макет.