【发布时间】:2016-12-05 13:21:46
【问题描述】:
我有一个派生自 System.Windows.Controls.Label 的 ExtendedLabel。 我想为 PaddingProperty 提供默认值。 我知道我可以为此目的使用 OverrideMetadata 方法。 但在某些方面它不起作用,Padding 值仍然显示为 5,5,5,5(这是标签的默认值)。
但是,对于 Margin 等其他属性,一切正常。
class ExtendedLabel : Label
{
static ExtendedLabel()
{
PaddingProperty.OverrideMetadata(typeof(ExtendedLabel), new FrameworkPropertyMetadata(new Thickness(0)));
MarginProperty.OverrideMetadata(typeof(ExtendedLabel), new FrameworkPropertyMetadata(new Thickness(0, 10, 0, 20)));
}
public ExtendedLabel()
{
// this.Padding = new Thickness(0);
}
}
PS: 我不想在构造函数中设置 Padding。 因为这避免了其他开发人员从他们的样式中更改 Padding 值。
【问题讨论】:
标签: wpf xaml styles default dependency-properties