Limitar a altura da linha em "Auto" e "1 *" no WPF

Eu tenho um aplicativo WPF que layout consiste em 3 linhas em um nível superiorGrid.

Eu quero que a linha do meio use o espaço necessário (o espaço máximo necessário é limitado, mas depende da largura da janela). A linha inferior deve ocupar o espaço restante. A parte complicada é a linha superior. Seu tamanho pode variar dependendo de um botão que alterna a visibilidade de uma grande parte do conteúdo. Eu quero usar no máximo 50% da altura, mas não mais do que realmente precisa. O seguinte XAML descreve o que eu quero realizar:

    <Grid.RowDefinitions>
        <!-- neither "1*" nor "Auto" fully meets my needs -->
        <RowDefinition Height="Min(1*,Auto)"></RowDefinition>

        <RowDefinition Height="Auto"></RowDefinition>

        <RowDefinition Height="1*"></RowDefinition>
    </Grid.RowDefinitions>

As linhas são:

WrapPanelWrapPanelTextBox

se isso é importante.

questionAnswers(3)

yourAnswerToTheQuestion