2011-02-09 7 views
0

xaml에 새 접두사를 만들 때 항상 문제가 있습니다. 대부분의 경우 URI가 어셈블리에서 발견되지 않는다는 메시지가 나타납니다. 내 설정 :xaml에서 폴더를 처리 할 수 ​​있도록 접두사를 만들 수 있습니까?

MainWindow.xaml 파일과 함께 WPF 프로젝트 (클래스 libs 및 asp.NET 프로젝트가있는 솔루션에서)가 있습니다. XAML은 다음으로 시작합니다. Window x : Class = "MainWindow".... 기본적으로 네임 스페이스가 없습니다. 그 동일한 프로젝트에서 나는 폴더 "폴더"를 만들었다. 그 폴더에는 resx 파일이 있습니다. 내가해야할 일은 xaml에 접두사를 만들어서 파일들을 처리 할 수있게하는 것입니다. 그러나 접두사 오류 "URI가 어셈블리에서 찾을 수 없습니다"발생 내 컨트롤

<Label Content="{x:Static p:NameResxFile.KeyName></Label> 

에 대한

xmlns:p="clr-namespace:WpfApplication.Folder" 

다음 : 나는 생각했다. 나는 단지 접두어 작성에 실패 했어?

미리 감사드립니다. 당신이 폴더에 네임 스페이스 심판을 할 수없는 경우

편집

, 무엇 here 일이 일어나고 있는가?

답변

0

xmlns은 외부 리소스에 액세스해야하는 경우 ResourceDictionary을 통해 컨트롤의 리소스에로드 할 수있는 경우 폴더 또는 파일에 관계없이 네임 스페이스를 지정합니다.

<Window.Resources> 
    <ResourceDictionary x:Key="ExternalRes" Source="Folder/File.xaml"/> 
    .... 
</Window.Resources> 
0

당신이 당신의 컨트롤의 Resources 컬렉션에 그 사전을 추가하거나 App.xaml 파일에 등록해야 리소스 사전의 요소를 참조하려면 :

는 다음과 같이 내가 생각이 있었다. 그 후에 요소에 액세스하려면 StaticResource 확장명을 사용하면됩니다. 코드는 다음과 같습니다.

<UserControl.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="/Folder/NameResxFile.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
    </UserControl.Resources> 
    <!-- ... --> 
    <Label Content="{StaticResource KeyName}"/> 

리소스 사전을 다른 어셈블리에 넣고 참조하려는 경우 까다로워집니다. 이 목적을 위해 PackURIs in WPF 문서를 참조하십시오.

관련 문제