문제

하나의 프로젝트에 Resourcedictionary가있는 경우 첫 번째 프로젝트에 정의 된 리소스를 사용하는 다른 프로젝트를 만들 수 있습니까? 두 프로젝트 모두 Controlibraries가 아닌 WPF 응용 프로그램입니다.

감사!!

도움이 되었습니까?

해결책

예, Project B가 프로젝트 A를 언급하는 한 가능합니다.

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/Project A;component/YourSubFolder/YourResourceFile.xaml" />
</ResourceDictionary.MergedDictionaries>

그런 다음 YourResourceFile.xaml에 정의 된 리소스 만 사용할 수 있습니다.

다른 팁

나는 어셈블리 자체를 참조하고 프로젝트 이름을 사용하지 않아야한다는 것을 알았습니다. 또한이 작업을 수행하기 위해 팩을 사용할 필요가 없었습니다.

중복 질문에 대한이 답변은 사용할 형식을 지정합니다 (이 구문이 .NET 4.0에서 작동하는지 확인할 수 있습니다).https://stackoverflow.com/a/10216253/1260563

구체적으로 (누군가가 항상 사용하는 폴더라고 생각하는 구성 요소 부분을 항상 잊어 버리기 때문에) :

<ResourceDictionary.MergedDictionaries>
   <ResourceDictionary Source="/<YourAssemblyName>;component/<YourReferencedFileHere.xaml>" />
</ResourceDictionary.MergedDictionaries>

따라서 어셈블리 ABC.def.dll이 있고 해당 DLL에 XYZ.XAML이라는 루트 레벨에서 파일이있는 경우 다음을 사용할 것입니다.

<ResourceDictionary.MergedDictionaries>
   <ResourceDictionary Source="/Abc.Def;component/Xyz.xaml" />
</ResourceDictionary.MergedDictionaries>

참고 : Resharper 7은 어셈블리 자체를 참조해야한다고 지적했습니다.

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