Вы должны включить файл XAML, содержащий стиль в ваш словарь ресурсов приложения как MergedDictionary:
<Application.Resources>
<ResourceDictionary>
<!-- here you can add some more resources -->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="mystyles.xaml"/>
<!-- here you can add some dictionaries -->
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Смотрите пример здесь: http://www.wpftutorial.net/MergedDictionaryPerformance.html
Или на самом деле вы можете поместить ваше определение стиля непосредственно в приложении ресурсов, без объединенных ресурсных словарей. Но таким образом ресурсы приложения обычно раздуваются довольно быстро.
Редактировать:
Для случая с библиотекой у вас нет доступного App.xaml. Поэтому вам нужно сделать в основном следующее:
- Добавить ресурсный словарь в свой проект и определить необходимые стили.
- В ресурсах элемента управления обратитесь к вашему словарю в виде объединенного словаря.
Обратите внимание, что вам необходимо указать полный путь («pack URI») в словаре:
<Control.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/YourAssembly;component/Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Control.Resources>
Да, я сделал это с моим программным проектом, но я не думал, что проект управления нуждается/имеет файл app.xaml. Похоже, что сторонний бесплатный веб-проект управления был разорван автором ROFL: P Кажется, у пользовательской библиотеки управления есть только Generic.xaml ... Так как мне получить доступ к этому generic.xaml из моего кода C#? – Elisabeth
@ Lisa: Вы разрабатываете библиотеку, а не приложение? – Vlad
На самом деле ДА :-) 10 сейчас ... LOL – Elisabeth