2010-02-04 3 views
1

Я хотел бы поместить некоторые шаблоны данных WPF в свободный файл, который я могу указать там, где это необходимо в моем UserControl. Я не хочу, чтобы шаблоны данных были широко распространены (используйте app.config), я хочу, чтобы он был специфичным для моей библиотеки. Есть ли способ сделать это, помимо размещения шаблонов данных в UserControls и затем загрузки UserControls?Ресурсы WPF XAML

Спасибо.

ответ

1

Создайте ResourceDictionary и поместите их в это. Затем вы можете загрузить ResourceDictionary и получить доступ к содержащимся DataTemplates с использованием синтаксиса индексатора:

DataTemplate myTemplate = (DataTemplate)rd["MyTemplate"]; 

ResourceDictionary является XAML-файлом, который вы бы скомпилировать в библиотеку так же, как вы бы с UserControl или окном. Если вы хотите отправить шаблоны как свободные (нескомпилированные) XAML, то вы все равно можете использовать ResourceDictionary, но вам нужно будет использовать XamlReader для загрузки из исходного файла .xaml.

+0

ResourceDictionary, похоже, не доступен из библиотеки классов. –

+0

Используйте шаблон библиотеки элементов управления WPF и просто удалите UserControl1. Кроме того, если у вас уже есть «нормальный» проект библиотеки классов и вы хотите разместить в нем свои ресурсы, добавьте «Добавить»> «Создать элемент»> «WPF> UserControl», затем перейдите в представление XAML и измените тег '' на ' '(и удалите атрибуты Height и Width и содержимое' 'по умолчанию, и, наконец, перейдите в код и поменяйте базовый класс с UserControl на ResourceDictionary. Немного клочья, но он доставит вас туда! – itowlson