Можно ли стилизовать содержимое DockPanel для заполнения последнего * видимого * дочернего элемента?

Рассмотрим этот фрагмент XAML ...

<DockPanel x:Name="TestDockPanel">

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

</DockPanel>

Как написано, DockPanel будет размещать «RightButton» вправо, а затем заполнять остальную часть области «FillButton», как это ...

Мы пытаемся найти способ стилизовать его так, чтобы, когда «FillButton» изменил видимость на «Collapsed», «RightButton» теперь должен заполнить область, как это ...

Единственный способ, которым мы знаем, как это сделать, - это физически удалить «FillButton» из дочерних элементов «TestDockPanel», но для этого требуется выделенный код, которого мы пытаемся избежать.

Обновить

Ниже в ответе я предложил решение на основе подкласса. Тем не менее, я оставляю это открытым, так как я хотел бы что-то, что может быть использовано сЛюбые DockPanel (или другой подкласс) предпочтительно применяется через стиль или прикрепленное поведение. Кроме того, чтобы быть ясным, требование решения заключается в том, что оно должно основываться на DockPanel, а не на сетке или другой панели.

Ответы на вопрос(1)

Ваш ответ на вопрос