写作时
public class A : Control
{
static A()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(A), new FrameworkPropertyMetadata(typeof(A)));
}
}
public class B : A
{
}
A
正确显示其样式,但B
没有A
的样式
但是,如果我继承Button
,例如,继承的控件正确显示为按钮
为什么它适用于Button
但不能用于我的控制?
答案 0 :(得分:0)
因为你在类A的构造函数中运行那行代码。当你实例化B类时,B的构造函数将运行而不是A.你可以尝试这样做:
public class A : Control
{
static A()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(A), new FrameworkPropertyMetadata(typeof(A)));
}
}
public class B : A
{
static B : base()
{
}
}