Все еще изучаю этот материал на WPF, темах, деривациях и т. Д.
Я понимаю основы "Themes \ Generic.xaml", а затем настраиваю файл app.xaml вашего приложения для включения словаря ресурсов, указывающего на обсуждаемую тему.
Итак, это нормально с точки зрения проекта приложения. Теперь, как насчет из библиотеки классов / DLL-файла. У меня есть проект DLL, который я хочу использовать в качестве основы для всех элементов управления в моем проекте. В этом у меня есть Themes / Generic.xaml, и я закодировал его с некоторыми основами для подтверждения реализации визуального дизайна (первоначально подтверждено нормально, при тестировании в проекте App / exe).
Теперь я хочу эту тему на уровне ДО фактического применения. Опять же, это базовая линия. Теперь я добавляю вторую библиотеку пользовательских сгруппированных элементов управления (например, пользовательский элемент управления для информации об адресе ... несколько строк адреса, город, штат, почтовый индекс, метки и т. Д.). Я хочу, чтобы эта вторая библиотека ссылалась на первую библиотеку с темами, чтобы во время разработки я мог визуально видеть, как она будет выглядеть (выравнивания, цвета, шрифты и т. Д.).
Что / где я должен искать, чтобы одна DLL знала о словарях слияния, лежащих в основе первой DLL. Надеюсь, что это имеет смысл.
- РЕДАКТИРОВАТЬ - для уточнения
Библиотека первого класса ... "MyThemeLibrary" компилируется в .dll
В этой dll находится путь / файл "/Themes/MyTheme.xaml"
Как следует из первого ответа, если у меня есть словарь ресурсов в первой библиотеке, я могу ссылаться на него во всем, что я из него получу. Итак, у меня есть
<ResourceDictionary x:Name="MyGenericTheme"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Themes/MyTheme.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Библиотека второго класса ... "SecondLevel" компилируется в .dll
В этом у меня есть пользовательский элемент управления, в который я хочу поместить сетку для столбцов / строк, меток и текстовых элементов управления. Я хочу, чтобы элементы управления уважали цвета, шрифты, размеры, выравнивания, как определено в «MyTheme.xaml» первой библиотеки DLL.
<UserControl x:Class="SecondLevel.multipleControlContainer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<Label Content="Something"
Grid.Row="0" Grid.Column="0" />
<TextBox Text="Testing" Grid.Row="1" Grid.Column="1" />
</Grid>
</UserControl>
Итак, как / что мне делать, сделать необходимую ссылку, объявление, включение словаря ресурсов из первой библиотеки во вторую.