내 사용자 지정 컨트롤의 기본 스타일은 Generic.xaml에 정의되어 있으며 정상적으로 작동합니다.WPF에서 사용자 지정 컨트롤의 암시 적 스타일 설정
그러나 사용자 정의 컨트롤의 스타일을 변경할 때 컨트롤이 내장 된 것과 같은 방법으로 아무 것도 발생하지 않습니다. App.xaml에서 나는 다음을 수행하여 내 컨트롤의 기본 스타일을 변경하는 것을 시도하고있다 : 모두가 잘 작동이 키를 사용하여이 스타일을 위의 스타일과 참조의 주요 특성 :
<Style TargetType="{x:Type my:CustomControl}">
<Setter Property="Background" Value="Red"/>
</Style>
나는 X를 설정합니다.
위의 스타일 지정 방법은 기본 제공 컨트롤에서만 작동하며 사용자 지정 컨트롤에서는 작동하지 않습니까? 아니면 잘못된 것입니까? 맞춤형 컨트롤을 위해 이러한 유형의 스타일링을 구현할 수있는 실행 가능한 솔루션이 있습니까?
업데이트 이 경우 내 사용자 지정 컨트롤은 System.Windows.Window에서 파생됩니다.
당신이 정적 생성자에서 DefaultStyleKeyProperty.OverrideMetadata을 설정, 아니면 당신은 몇 가지 해결 방법을 뭐하는거야? – shadow32
"위의 스타일 지정 방법은 기본 제공 컨트롤에서만 작동하며 사용자 지정 컨트롤에서는 작동하지 않습니다 ...?" 아니, 그건 사실이 아니야. 당신은 아마도 당신의 통제 선언에서 어떤 일을 잘못했을 것입니다. 너도 그걸 보여줘야 해. – Clemens
클레멘스 (Clemens)의 발언에 따라 나는 새로운 프로젝트에서 나의 사례를 재현하려고 노력했다. TextBox에서 상속하는 사용자 지정 컨트롤을 만들 때 암시 적 스타일이 올바르게 작동합니다. 그러나 똑같은 설정을 사용하고 Window에서 상속하도록 컨트롤을 변경하면 (내 원래의 문제 였음) 암시 적 스타일이 작동하지 않습니다. 다른 컨트롤과 달리 기본 클래스로 Window를 사용할 때 암시 적 스타일에 문제가 있습니까? – user6836683