Я создал сборку библиотеки классов, в которой я создал пользовательские элементы управления, и я определил стили по умолчанию в файле generic.xaml.
Кажется, это довольно распространенная проблема, поскольку многие люди публикуют об этом. Однако я не мог найти полезного ответа для моего случая.
- файл generic.xaml находится в папке "Темы".
- Файл generix.xaml Build Action установлен на страницу.
- ThemeInfo правильно определен в моей AssemblyInfo.cs.
В моем тестовом приложении, если я вручную объединить файл generic.xaml из сборки пользовательских элементов управления в файл приложения App.xaml следующим образом:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyControlsAssembly;component/Themes/generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
тогда пользовательские элементы управления будут правильно оформлены, но если я не буду вручную объединять generic.xaml, элементы управления появятся со стандартной темой Windows.
Не могли бы вы рассказать мне, что я забываю и/или делаю неправильно?
Дополнительная информация:
-
Атрибут сборки My ThemeInfo определяется следующим образом:
[assembly: ThemeInfo(ResourceDictionaryLocation.SourceAssembly, ResourceDictionaryLocation.SourceAssembly)]
(Примечание: результат совпадает с любой комбинацией параметров для атрибута ThemeInfo)
-
В папке "Темы" есть еще два файла .xaml рядом с файлом generic.xaml.
- В папке Themes есть вложенная папка, в которой содержится другой файл .xaml.