我创建了一个工作得很好的UserControl。如果我在代码中设置边距一切顺利:
<cbtn:BillLister Margin="10,5,10,5" />
然而,当我尝试为他们所在的那些人中的每个人设置它时,这不起作用:
<WrapPanel.Resources>
<Style TargetType="cbtn:BillLister">
<Style.Setters>
<Setter Property="Margin" Value="150,35,50,35" />
<Setter Property="Background" Value="Black"/>
</Style.Setters>
</Style>
然后,Background属性正在运行,所以我知道它的目标是正确的UserControls。
我确实找到了这个:How to give my custom control an overridable default margin?我尝试了他在那里做的事情,但仍然没有改变。
public partial class BillLister : UserControl
{
public BillLister()
{
InitializeComponent();
Labelcount.Content = "0";
}
static BillLister()
{
MarginProperty.OverrideMetadata(typeof(BillLister), new FrameworkPropertyMetadata(new Thickness(30, 130, 30, 30)));
}
...
有没有人知道这里会发生什么?我不想手动设置每个边距。
更新以澄清:在尝试第二个版本时,我不会使用第一个版本的内联边距。此外,第二个示例的边距根本不适用。