问题描述
|
我有一个WPF,可以在加载表单时动态创建按钮,并将它们添加到XAML中已声明的StackPanel中。我想在StackPanel.Resources内部的XAML中完全定义这些按钮的样式。到目前为止,我可以为Style属性做到这一点,但是我遇到的麻烦是实现边距的最佳方法。我知道“边距”是“厚度”,实际上不能以样式应用,但必须定义为静态资源并直接应用于“边距”属性。有没有一种方法可以在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>
谢谢,
麦克风
解决方法
您声明“我知道边界是厚度,因此无法实际应用样式”,这是不正确的。可以在XAML中应用边距,the1ѭ类型具有类型转换器,该类型转换器可以将字符串转换为
Thickness
,从而允许您按以下方式对其进行定义:
<setter Property=\"Margin\" Value=\"5,5,5\"/>
, <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>
, Padding
也是Thickness
,看来您可以加上一点;)。
因此,只需按照与Padding
相同的方式进行即可。