2014-01-30 2 views
1

느슨한 XAML에서 ResourceDictionary를 사용하고 WPF 응용 프로그램에 템플릿과 스타일을 제공하기 위해 런타임을로드하려고합니다. 로컬 디렉터리에서 XAML을 사용할 수 있으며 URI를 사용하는 App 시작시 App.Current.Resources.MergedDictionaries에 새 ResourceDictionary를 추가하고 있습니다.WPF Loose XAML ResourceDictionary

XAML을 구문 분석 할 때 템플릿을 소비하는 어셈블리에서 TargetType이 사용자 지정 컨트롤 인 서식 파일에서 XAML이 불어납니다.

특정 메시지는 다음과 같습니다

컨트롤 '텍스트에서'형식 '은 만들 수 없습니다': '.'CustomType을

이미 네임 스페이스가 상단에있는 ResourceDictionary에 매핑 한

:

의 xmlns : 컨트롤 = "CLR-네임 스페이스 : TEST.UI.WPF.Common.Controls"

기사가 있습니다를 거기서 느슨한 XAML에서 ResourceDictionaries를로드하는 것이 가능하지만 그 중 느슨한 XAML 파일에서 주소 사용자 지정 유형을 찾은 사용자는 없습니다.

도움을 주시면 감사하겠습니다.

+0

ResourceDictionary를 코드에로드하고 있습니까? 그렇다면 해당 사용자 지정 형식을 포함하고 XAML 템플릿을 사용하는 어셈블리에서이 작업을 수행하고 있습니까? –

+0

예, 사용자 지정 형식을 포함하고 XAML 템플릿을 사용하는 어셈블리의 응용 프로그램 시작에로드되고 있습니다. –

답변

4

런타임에이 파일을로드하고 프로젝트 내에 빌드되지 않았으므로 ResourceDictionary는 어셈블리를 알 수 없습니다. 네임 스페이스에 어셈블리를 포함 시켜서 인식해야합니다.

xmlns:controls="clr-namespace:TEST.UI.WPF.Common.Controls;assembly=Common" 

당신은 당신이 추가 한 후 응용 프로그램을 실행할 수 있어야합니다 '; 조립 = yourAssembly'네임 스페이스 선언합니다.