하나의 리소스 사전을 다른 리소스에 추가 할 수 있습니까? 도움 주셔서 감사합니다.하나의 ResourceDictionary를 다른 WPF로 가져 오는 방법은 무엇입니까?
19
A
답변
0
더 이상 문맥이 없으면 특정 답변을 제공하기가 어렵습니다. 다음은 리소스 사전을 병합에 대한 몇 가지 가능성이 관련 자료를이다 :
1
뭔가 같은 :
ResourceDictionary resources = new ResourceDictionary();
resources.Source = new Uri("/MyModule;component/MyModule.xaml",
UriKind.RelativeOrAbsolute);
Application.Current.Resources.MergedDictionaries.Add(resources);
당신이 찾고있는 무슨 수 있습니다. 우리는 프리즘 모듈에서 이와 같은 코드를 사용합니다.
3
내가 그 작업을 오전 SketchFlow를 프로젝트에서 직선 스 니펫은 XAML에서 리소스 사전을 병합하는 방법을 보여줍니다
<Application.Resources>
<!-- Resources scoped at the Application level should be defined here. -->
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Microsoft.Expression.Prototyping.SketchControls;component/ScrollViewerStyles.xaml"/>
<ResourceDictionary Source="/[ProjectABC];component/[fileXYZ].xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
이 다른 리소스 사전에 두 개의 추가 리소스 사전을 병합을 보여줍니다.
(오른쪽 오프닝 ResourceDictionary에 태그 후) MergedDictionaries를 정의 Dictionary2.xaml에서
19
(당신은 그들이 서로를 오버 라이딩으로 둘 이상의 위치에 정의 된 기본 스타일이있는 경우 순서가 중요 될 수 있습니다) :
를<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Path/to/Dictionary1.xaml" />
</ResourceDictionary.MergedDictionaries>
catch가 있습니다. 사전을 병합 할 때마다 효과적으로 병합 된 사전 복사본을 만듭니다. 재귀 적입니다. Dict3.xaml과 Dict4.xaml을 가지고 Dictionary2.xaml을로드하는 경우 Dictionary1.xaml 인스턴스 세 개를 만듭니다.
솔루션은 SharedResourceDictionary입니다. 튜토리얼의 구현은 시작점으로 간주되어야하며 사용 시나리오에 따라 약간의 조정이 필요할 것입니다. Google의 "wpf SharedResourceDictionary"는 몇 가지 문제와 해결책을 제시합니다.
대답에서 this question까지 XAMeLi