Synchronizacja szerokości kontrolnych WPF w panelu WrapPanel

Mam tę sprawę

<code><WrapPanel>
    <CheckBox>Really long name</CheckBox>
    <CheckBox>Short</CheckBox>
    <CheckBox>Longer again</CheckBox>
    <CheckBox>Foo</CheckBox>
    <Slider MinWidth="200" />
</WrapPanel>
</code>

Chcę, aby wszystkie pola CheckBox wewnątrz WrapPanel były tej samej szerokości.

Dodanie poniższego prawie zapewnia pożądany efekt

<code><WrapPanel.Resources>
    <Style TargetType="CheckBox" BasedOn="{StaticResource {x:Type CheckBox}}">
        <Setter Property="MinWidth" Value="75" />
    </Style>
</WrapPanel.Resources>
</code>

Jednak nie chcę kodować określonej szerokości, raczej niech największy CheckBox ustawi szerokość (powyższe również nie powiedzie się, jeśli dowolna szerokość> 75).

Suwak jest niezależny i powinien być większy niż pola CheckBox.

Nie chcę używać siatki (z IsSharedSizeScope), ponieważ nie chcę na stałe zakodować liczby kolumn.

Ten artykuł przedstawia interesujące rozwiązanie, ale byłoby miło rozwiązać problem bez tworzenia niestandardowej kontroli lub używania kodu C #.

Jak najlepiej to zrobić, najlepiej tylko w XAML?

questionAnswers(3)

yourAnswerToTheQuestion