WPF中元素之间的等宽边距

时间:2015-07-31 11:28:18

标签: wpf mono styles margin space

我希望子元素之间的空格,例如,StackPanel是相同的。当对子元素使用相同的边距时,邻居之间的差距加倍。我正在用一个小技巧来解决这个问题,但在我看来有更优雅的解决方案。可能你有一个吗?

<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>

我正在使用MyButtonStyle用于除最后一个按钮之外的所有按钮,它们使用LastMyButtonStyle。

1 个答案:

答案 0 :(得分:1)

将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>