2017-12-26 51 views
0

내가 쓸 때 종속성 속성은

public class A : Control 
{ 
    static A() 
    { 
     DefaultStyleKeyProperty.OverrideMetadata(typeof(A), new FrameworkPropertyMetadata(typeof(A))); 
    } 
} 

public class B : A 
{ 
} 

A

는 올바르게 스타일을 표시하지만 B A의 스타일
을하지만, 예를 들어 Button을 상속하는 경우로 제어 표시를 상속하지 않습니다 버튼을 올바르게 누르십시오.

Button은 왜 작동합니까? 당신은 클래스 B의 인스턴스를 할 때 당신이 당신의 클래스 A의 생성자 내부 코드 줄을 실행하기 때문에

+2

이를 보통 작동해야합니다. 아마도 아직 우리에게 보여주지 않은 것이있을 것입니다. – Clemens

답변

0

, B의 생성자가 실행되고 있지 A.이 같은 일을 시도 할 수 :

public class A : Control 
{ 
    static A() 
    { 
     DefaultStyleKeyProperty.OverrideMetadata(typeof(A), new FrameworkPropertyMetadata(typeof(A))); 
    } 
} 

public class B : A 
{ 
    static B : base() 
    { 
    } 
} 
+2

'정적 B : base()'도 컴파일되지 않습니다. 정적 생성자는 기본 클래스 생성자를 호출 할 수 없습니다. – Clemens