Czy można stylizować zawartość DockPanel, aby wypełnić ostatnie * widoczne * dziecko?

Rozważ ten fragment XAML ...

<DockPanel x:Name="TestDockPanel">

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

</DockPanel>

Jak napisano, panel DockPanel będzie układał „RightButton” w prawo, a następnie wypełni resztę obszaru „FillButton” w ten sposób ...

Próbujemy znaleźć sposób na jego stylizację, tak że gdy „FillButton” zmieni swoją widoczność na „Zwinięty”, „Prawy przycisk” powinien teraz wypełnić ten obszar, tak ...

Jedynym sposobem, w jaki wiemy, jak to zrobić, jest fizyczne usunięcie „FillButton” z potomków „TestDockPanel”, ale wymaga to użycia kodu, którego staramy się unikać.

Aktualizacja

Poniżej w odpowiedzi postawiłem rozwiązanie oparte na podklasie. Jednak pozostawiam to otwarte, ponieważ chciałbym mieć coś, z czym można by korzystaćkażdy DockPanel (lub inna podklasa) i najlepiej stosować za pomocą stylu lub dołączonego zachowania. Ponadto, aby było jasne, wymaganiem rozwiązania jest to, że musi być oparte na panelu DockPanel, a nie na siatce lub innym panelu.

questionAnswers(1)

yourAnswerToTheQuestion