我有这个案例
<WrapPanel>
<CheckBox>Really long name</CheckBox>
<CheckBox>Short</CheckBox>
<CheckBox>Longer again</CheckBox>
<CheckBox>Foo</CheckBox>
<Slider MinWidth="200" />
</WrapPanel>
我希望 WrapPanel 中的所有 CheckBox 的宽度都相同。
添加以下几乎可以达到预期的效果
<WrapPanel.Resources>
<Style TargetType="CheckBox" BasedOn="{StaticResource {x:Type CheckBox}}">
<Setter Property="MinWidth" Value="75" />
</Style>
</WrapPanel.Resources>
但是,我不想硬编码特定的宽度,而是让最大的 CheckBox 设置宽度(如果任何宽度> 75,上面的方法也会失败)。
Slider 是独立的,应该允许大于 CheckBoxes。
我不想使用网格(带有 IsSharedSizeScope),因为我不想要硬编码的列数。
本文提出了一个有趣的解决方案,但如果不创建自定义控件或使用 C# 代码来解决该问题会很好。
最好的方法是什么,最好只在 XAML 中?