我有一个WPF,可以在加载表单时动态创建按钮,并将它们添加到已在XAML中声明的StackPanel。我想在StackPanel.Resources中的XAML中完全定义这些按钮的样式。到目前为止,我能够很好地为Style属性执行此操作,但是我在找出问题时遇到的问题是最好的方法。我知道边距是厚度,实际上不能在样式中应用,但必须定义为静态资源并直接应用于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>
谢谢,
麦克
答案 0 :(得分:4)
你声明“我知道边距是一个厚度,实际上不能用于样式”,这是不正确的。边距可以在XAML中应用,Thickness
类型有一个类型转换器,可以将字符串转换为Thickness
,允许您按如下方式定义它:
<setter Property="Margin" Value="5,5,5,5"/>
答案 1 :(得分: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>
答案 2 :(得分:2)
Padding
也是Thickness
,似乎你可以添加就好了。)。
所以就像Padding
一样。