2012-05-10 2 views

답변

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