다른 어셈블리에서 WPF의 USERCONTROL 스타일
-
20-09-2019 - |
문제
응용 프로그램 어셈블리에 정의 된 WPF 사용자 컨트롤이 있습니다. 다른 (피부 또는 테마) 어셈블리의 스타일을 기반으로 사용자 컨트롤을 스타일링하려고합니다. 응용 프로그램 어셈블리를 참조하기 위해 모든 스타일과 함께 Resourcedictionary가 포함 된 테마/스킨 어셈블리를 원하지 않습니다. 이 작업을 수행하는 방법이 있습니까? 예를 들어
wpfapplication 어셈블리
myusercontrol.xaml <-WPF 사용자 컨트롤
테마 어셈블리
mystyles.xaml <-WPF 리소스 사전
나는 내가 사용할 수 있다고 생각한다
<Style x:Key="MyStyle">
<Setter Property="Background" Value="Red" />
</Style>
mystyles.xaml resourcedictionary에서 사용 :
<l:MyUserControl Name="control" Style="{StaticResource MyStyle}" />
wpfapplication 어셈블리에서 myusercontrol.xaml을 사용하는 모든 창에서
그러나 mystyles.xaml resourcedictionary에서 사용자 정의 사용자 컨트롤을 목표로 삼고 선호합니다.
<Style TargetType="{x:Type l:MyUserControl}" x:Key="MyStyle">
<Setter Property="Background" Value="Red" />
</Style>
이게 가능해??
해결책
예, 할 수 있습니다. 이렇게 게시하십시오 프로그래밍 방식으로 수행하는 방법을 보여줍니다. 나는 ControlTemplates로 그것을하고 있었지만 똑같은 것은 스타일에도 적용됩니다.
선언적으로 더 간단 할 수 있으려면 리소스 컬트를 프로그래밍 방식으로 병합하고 XAML의 올바른 정적 소송 및 네임 스페이스를 선언 한 다음 원하는 스타일/템플릿을 참조해야 할 수도 있습니다.
제휴하지 않습니다 StackOverflow