나는 당신이 Application
레벨에서 병합을한다고 가정하고있다. 그렇지 않으면 단지 테마 사전을 호스트하는 유일한 직업 인 중간 컨트롤을 도입 할 수있다. 그되는 경우, 나는 다중 계층 접근 방식을 사용하여 제안함으로써 최초의 통합 사전 주택 모든 테마 관련 사전 :
<Application.Resources>
<!-- all application level resources -->
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- theme-related resources -->
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- merge in theme-related dictionaries here -->
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
<!-- merge in other application-level dictionaries here -->
</ResourceDictionary.MergedDictionaries>
<!-- other resources -->
<SolidColorBrush x:Key="Foo">Black</SolidColorBrush>
</ResourceDictionary>
</Application.Resources>
지금이 같은 코드 만 테마 관련 자료를 타겟팅 할 수 있습니다 :
Application.Current.Resources.MergedDictionaries[0].Clear();
Application.Current.Resources.MergedDictionaries[0].Add(...);
아주 좋습니다. 고마워요 켄트 !!! –
리소스 딕셔너리에 이름을 붙여서 처음으로 하드 코딩하지 않고 검색 할 수있는 방법이 있습니까? 또는 XAML과 코드간에 허용되는 연결로 간주됩니까? –