내 애플 리케이션에 대한 일반적인 도움말/정보를 표시하는 공통 WP7 어셈블리를 빌드 중이며, 각 애플 리케이션 어셈블리는 일부 애플 리케이션이있는 StackPanels 쌍을 지정합니다 특정 정보 (물론 Legal.xaml 및 WhatsNew.xaml이라고도 함).XamlReader.Load()에 의해로드되는 파일에서 ResourceDictionary를 성공적으로 참조했습니다.
이러한 앱 관련 XAML 파일은 HTTP 또는 포함 된 리소스 문자열로로드 할 수 있도록 일반 텍스트 형식 (코드로 인스턴스화 된 것) 이상이어야합니다.
일부 스타일 정의를 다른 파일로 분해 할 때까지 XAML을로드하면 XamlReader.Load()가 실패하고 "AboutAttributePagePage/CommonStyles.xaml 값이 범위를 벗어납니다. [선 : 43 위치 : 45] :
우리는 지금 사용자 지정 스타일을 포함하는 ResourceDictionary의로드를 시도하고 어디에서 찾을 수 (43)처럼 주위를 둘러 보면 Legal.xaml를로드 할 때 "그 오류가 일어날 것
<StackPanel.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="AboutPageDocs/CommonStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</StackPanel.Resources>
여기에 버그가 있습니다 ... 단순히 & (런타임에 동적으로로드되는) StackPanel 코드를 붙여 넣은 다음 UserControl에 놓으면 잘됩니다.
둘 다 내 스타일을 인라인으로 정의하지 않아도됩니다. Legal.xaml & WhatsNew.xaml ... XamlReader.Load() 속성 조회 CommonStyles.xaml을 가질 수있는 방법이 있습니까?
원본 경로가 올바르지 않다고 생각하여 두 어셈블리를 통해 CommonStyles.xaml의 복사본을 여러 위치에 배치하려고했지만 pack : // uri 구문 ... all을 사용하여 실험했습니다. 지금까지 아무 소용이 없습니다.
무엇이 누락 되었습니까?
가 왜 처음에'XamlReader.Load'를 사용 XamlReader.Load를 호출 할 때 나는 ParserContext에를 지정할 때이 나를 위해 일을 찾았나요? XAML없이 다시 사용할 수있는 컨트롤이 필요한 경우에는 C#에서 문서를 고쳐 써야합니다. –
여기에도 같은 문제가 있습니다. 이상하게도 솔루션이 될 수없는 완벽한 절대 경로를 지정하면 충분합니다. 따라서 XamlReader는 상대 경로가 아닌 다른 XAML 파일에 대한 참조를 확인할 수 있습니다. – Seven