Begrenzen Sie die Zeilenhöhe in WPF sowohl auf "Auto" als auch auf "1 *"

Ich habe eine WPF-Anwendung, deren Layout aus 3 Zeilen auf oberster Ebene bestehtGrid.

Ich möchte, dass die mittlere Reihe den benötigten Platz belegt (der maximal benötigte Platz ist begrenzt, hängt jedoch von der Breite des Fensters ab). Die unterste Reihe soll den verbleibenden Platz verbrauchen. Der knifflige Teil ist die oberste Reihe. Die Größe kann abhängig von einer Schaltfläche variieren, mit der die Sichtbarkeit eines großen Teils des Inhalts umgeschaltet wird. Ich möchte, dass es höchstens 50% der Höhe ausmacht, aber nicht mehr, als es wirklich braucht. Die folgende XAML beschreibt, was ich erreichen möchte:

    <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>

Die Zeilen sind:

WrapPanelWrapPanelTextBox

wenn das wichtig ist.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage