WPF 中元素之间的等宽边距

Monospace Margin between elements in WPF

我希望子元素之间的 space 相同,例如 StackPanel。当对子元素使用相同的 Margin 时,相邻元素之间的差距会加倍。我正在使用一个小技巧来解决这个问题,但在我看来还有更优雅的解决方案。也许你有一个?

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="MyButtonStyle" TargetType="Button">
    <Setter Property="Margin" Value="4,4,0,4" />
    ...
</Style>
<Style x:Key="LastMyButtonStyle" TargetType="Button" BasedOn="{StaticResource MyButton}">
    <Setter Property="Margin" Value="4" />
</Style>

除了最后一个使用 LastMyButtonStyle 的按钮外,我对所有按钮都使用 MyButtonStyle。

将StackPanel放在另一个容器中,即Border,并将其Margin设置为与Buttons相同的值:

<Border>
    <StackPanel Orientation="Horizontal" Margin="2">
        <Button Margin="2" Content="Button 1"/>
        <Button Margin="2" Content="Button 2"/>
        <Button Margin="2" Content="Button 3"/>
    </StackPanel>
</Border>