몇 달 전 sharing resource dictionaries across assemblies에 대한 질문을 게시했습니다. 구성 요소 자원 키 마크 업 확장을 사용하여이를 수행 할 수 있습니다. 그 당시에는 일반 클래스 라이브러리 프로젝트가 아닌 WPF Custom Control 프로젝트에서만 작업 할 수있었습니다.WPF 사용자 지정 컨트롤 라이브러리와 일반 클래스 라이브러리의 차이점은 무엇입니까?
이제 공유 리소스 사전을 호스팅하기 위해 기존의 일반 클래스 라이브러리 프로젝트를 사용해야합니다. 즉, 구성 요소 리소스 키 마크 업 확장을 지원하기 위해 클래스 라이브러리 프로젝트를 개조해야합니다. PresentationCore, PresentationFramework 및 WindowsBase에 대한 참조뿐만 아니라 Themes 폴더와 Generic.xaml 리소스 사전 문서를 클래스 라이브러리 프로젝트에 추가했습니다. 불행히도, 그 트릭을하지 않는 것.
그래서, 여기 내 질문 : 위의 이외의 WPF 사용자 지정 컨트롤 라이브러리 프로젝트 않는 일반 클래스 라이브러리 프로젝트 있지? 다른 말로하면,이 기능을 작동시키기 위해 클래스 라이브러리 프로젝트에 추가 할 수있는 것은 무엇입니까? 감사.
구성 요소 자원 키 마크 업 확장 프로그램이 작동하지 않습니다. 두 개의 동일한 솔루션을 하나는 사용자 정의 컨트롤 라이브러리로 설정하고 다른 하나는 DLL 참조 및 테마/Generic.xaml이있는 일반 클래스 라이브러리로 설정합니다. 구성 요소 리소스 키 태그 확장은 사용자 지정 컨트롤 라이브러리에서 작동하지만 클래스 라이브러리에서는 작동하지 않습니다. –
이전 클래스 라이브러리를 사용자 지정 컨트롤 라이브러리로 바꾸고 모든 클래스를 클래스 라이브러리에서 사용자 지정 컨트롤 라이브러리로 이동하여이 문제를 해결했습니다. 그러나 클래스 라이브러리를 어떻게 개조할지 생각하고 싶습니다. 왜냐하면 아마도 이것을 다시 보게 될 것이기 때문입니다. –
이상한. 다음은 나를 위해 일했다 : 클래스 라이브러리 프로젝트를 만들고, WPF DLL 참조를 추가하고, Themes/Generic.xaml을 추가한다. (UserControl과 ResourceDictionary가되도록 XAML을 만들지 않은 Resource Dictionary 옵션을 추가한다.) 클래스에 CRK를 만든다. 연결된 질문에), generic.xaml에 x : Key가 CRK로 설정된 리소스를 추가했습니다. 나를 위해 컴파일 (VS2008 SP1). Cameron이 언급 한 ThemeInfoAttribute가 필요하지 않았습니다. XAML 파일을 게시 할 가치가 있습니까? – itowlson