2010-07-25 3 views
1

ComboBox에서 상속되는 사용자 지정 WPF 컨트롤 클래스를 만듭니다. 방금 정의한 동작이므로 ComboBox의 기존 템플릿은 내 용도로 적합하며 다른 테마를 지원하기 위해 전체 템플릿 집합을 만들고 싶지 않습니다. 내 컨트롤이 기존 ComboBox 템플릿을 사용하도록 지정하는 방법이 있습니까?사용자 지정 WPF 컨트롤에서 기존 템플릿 다시 사용

답변

1

는 컨트롤에게 기본 스타일을 지정하고 콤보 상자의 기본 스타일에 BasedOn을 설정

<Style TargetType="{x:Type local:CustomControl1}" 
     BasedOn="{StaticResource {x:Type ComboBox}}"> 
</Style> 

이 콤보 상자 기본 스타일에서 템플릿 세터을 상속합니다.

+0

토마스의 대답은이 상황에서 효과적 일 것이고 고유 한 장점이 있습니다. 메서드를 사용하면 나중에 돌아가서 컨트롤의 코드를 조정하지 않고 ComboBox에 대한 사용자 지정 컨트롤과 별도로 사용자 지정 컨트롤의 기본 스타일을 재정의 할 수 있습니다. –

1

아무 것도 할 필요가 없습니다. 컨트롤이 ComboBox에서 상속 받고 속성을 덮어 쓰지 않으면 ComboBox과 동일한 스타일을 사용합니다 (따라서 동일한 템플릿)

+0

나는 이것을 처음 시도했지만, 마법사의 기본적인 행동은 키를 오버라이드하는 것으로 보이지 않는 컨트롤이있다. 이것은 좋은 해결책이고 그것은 작동합니다. 그래서 나는 투표를했습니다. 그러나 당신이 선별 적으로 기존의 템플릿을 대체하고 확장 할 수있는 능력을 부여하면서 다른 하나를 받아 들였습니다. – Shane

관련 문제