0

我有一个 WPF,它在加载表单时动态创建按钮并将它们添加到已在 XAML 中声明的 StackPanel。我想在 StackPanel.Resources 内的 XAML 中完全定义这些按钮的样式。到目前为止,我可以很好地为 Style 属性执行此操作,但我无法弄清楚是做边距的最佳方法。我知道 Margin 是一种厚度,实际上不能应用于样式,但必须定义为静态资源并直接应用于 Margin 属性。有没有一种方法可以在 XAML 中做到这一点而无需借助代码隐藏?

这是我的 StackPanel 的 XAML:

        <StackPanel
            x:Name="_dialogButtons"
            Orientation="Horizontal"
            HorizontalAlignment="Right"
            DockPanel.Dock="Right">

            <StackPanel.Resources>
                <Style
                    TargetType="{x:Type Button}">
                    <Setter
                        Property="MinWidth"
                        Value="75" />
                    <Setter
                        Property="Padding"
                        Value="3" />
                </Style>                    
            </StackPanel.Resources>

        </StackPanel>

谢谢,

麦克风

4

3 回答 3

4

您说“我知道 Margin 是一种厚度,实际上不能应用于样式”,这是不正确的。可以在 XAML 中应用边距,该Thickness类型有一个类型转换器,可以将字符串转换为 aThickness允许您按如下方式定义它:

<setter Property="Margin" Value="5,5,5,5"/>
于 2011-05-31T15:38:19.510 回答
4
<StackPanel.Resources>
    <Style
        TargetType="{x:Type Button}">
        <Setter
            Property="MinWidth"
            Value="75" />
        <Setter
            Property="Padding"
            Value="3" />
        <Setter
            Property="Margin"
            Value="3" />
    </Style>                    
</StackPanel.Resources>
于 2011-05-31T15:38:34.033 回答
2

Padding也是一个Thickness,看来你可以添加它就好了;)。

因此,只需以与Padding.

于 2011-05-31T15:36:50.583 回答