Ist es möglich, den Inhalt eines DockPanels so zu gestalten, dass das letzte * sichtbare * Kind gefüllt wird?

Betrachten Sie dieses XAML-Snippet ...

<DockPanel x:Name="TestDockPanel">

    <Button x:Name="RightButton" Content="Right" DockPanel.Dock="Right" />
    <Button x:Name="FillButton" Content="Fill" />

</DockPanel>

Wie geschrieben, wird das DockPanel 'RightButton' rechts anordnen und dann den Rest des Bereichs mit 'FillButton' wie folgt füllen ...

Wir versuchen, einen Weg zu finden, es so zu gestalten, dass, wenn die Sichtbarkeit von 'FillButton' auf 'Collapsed' geändert wird, 'RightButton' nun den Bereich wie folgt ausfüllt ...

Die einzige Möglichkeit, wie wir dies tun können, besteht darin, 'FillButton' physisch von den untergeordneten Elementen von 'TestDockPanel' zu entfernen. Dies erfordert jedoch Code-Behind, den wir zu vermeiden versuchen.

Aktualisieren

Unten in einer Antwort habe ich eine Lösung basierend auf einer Unterklasse vorgeschlagen. Ich lasse dies jedoch offen, da ich etwas möchte, das mit verwendet werden kannirgendein DockPanel (oder eine andere Unterklasse) und vorzugsweise über einen Stil oder ein angefügtes Verhalten angewendet. Um klar zu sein, muss die Lösung auf einem DockPanel basieren, nicht auf einem Raster oder einem anderen Panel.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage