문제

응용 프로그램 어셈블리에 정의 된 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의 올바른 정적 소송 및 네임 스페이스를 선언 한 다음 원하는 스타일/템플릿을 참조해야 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top