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ć.
AktualizacjaPoniż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.