2010-02-15 5 views

답변

11

이 작업을 수행하는 한 가지 방법은 다른 Silverlight 프로젝트에서 참조하게 될 공유 테마/스타일 어셈블리 인 새 Silverlight 클래스 라이브러리를 만드는 것입니다. 이 어셈블리에는 스타일, 브러시 및 템플릿을 모두 정의 할 수있는 하나 이상의 Resource Dictionary XAML 파일이 있습니다. Style 클래스의 BasedOn 속성을 사용하여 계단식 스타일 계층을 설정할 수도 있습니다.

그런 다음 MergedDictionaries을 사용하여 이러한 스타일을 App.xaml 수준 또는 페이지 수준 단위로 응용 프로그램에 병합 할 수 있습니다.

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/SharedThemeAssembly;component/MyStyles.xaml"/> 
      ...other ResourceDictionaries to merge in... 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

그러면 다른 StaticResource와 마찬가지로 공유 스타일/브러시를 참조하게됩니다.

+0

위시 나는이 두 번 투표 할 수 있습니다 :). – retrodrone

4

두 가지 옵션이 있습니다. 먼저 Dan은 다른 프로젝트에서 공유하는 라이브러리를 만들 수 있음을 나타냅니다. 클라이언트가 여러 프로젝트에 액세스하고 프로젝트에서 응용 프로그램 라이브러리 캐싱을 사용하면 총 다운로드 크기가 줄어 듭니다.

다른 방법은 한 프로젝트에서 리소스 사전을 만든 다음 동일한 파일을 다른 프로젝트에 추가하는 것입니다. 기존 항목 추가 대화 상자의 추가 버튼에는 작은 드롭 다운 이미지가 있으며 드롭 다운 한 다음 "링크로 추가"를 선택하십시오.

이렇게하면 단순 Xaml 파일로 유지됩니다. 내가 볼 수있는 한 가지 장점은 실제로 사전 파일을 Xap에서 제외하고 clientBin 폴더 (또는 Xap이있는 폴더)에 배치하는 것입니다. 이 방법을 사용하면 모든 Xaps에서 첫 번째 접근 방식과 동일한 방법으로 단일 사전을 공유 할 수 있지만 지저분한 다시 작성없이 Xaml을 조정할 수 있습니다.

+0

http://stackoverflow.com/questions/9215906/cant-find-my-styles-in-silverlight-5/9216046#9216046. 이 일을 도와 줄 수 있어요? – Vinicius

관련 문제