2011-02-09 1 views
0

У меня всегда возникают проблемы с созданием новых префиксов в xaml. В большинстве случаев я получаю сообщение о том, что URI не может быть найден в сборке. Моя настройка:Как я могу сделать префикс, чтобы я мог обращаться к папке в xaml

У меня есть проект WPF (в решении с классами libs и asp.NET) с файлом MainWindow.xaml. XAML начинается с: Window x: Class = "MainWindow" .... Так как по умолчанию для него нет пространства имен. В том же проекте я создал папку «Папка». В этой папке у меня есть resx-файлы. Мне нужно сделать префикс в xaml, чтобы я мог адресовать эти файлы. Я думал:

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

, а затем для моего управления

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

Однако префикс генерирует «URI не может быть найден в сборке» ошибке. Я просто не могу сделать префиксы?

Заранее спасибо.

EDIT

Если вы не можете сделать имен реф в папку, что происходит 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.