В настоящее время я нахожу альтернативу MVVM Framework для существующего приложения, которое построено на MaterialDesignInXamlToolkit в сочетании с Mahapps.Metro (в основном используется для windows). В процессе я наткнулся на Catel и перестроился на этот Orchestra , который включает оболочку, созданную для MahApps.Metro . Пока все хорошо, все работает. Но затем я хотел применить внешний вид Materialdesign к приложению, как я всегда это делаю:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml"/>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml"/>
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml"/>
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.MahApps;component/Themes/MaterialDesignTheme.MahApps.Defaults.xaml"/>
<materialDesignMahApps:MahAppsCustomColorTheme BaseTheme="Dark" PrimaryColor="Orange" SecondaryColor="Gray" />
</ResourceDictionary.MergedDictionaries>
Внедрение этих словарей в систему стилей (обычно выполняется в App.xaml
) обычно обновляет стиль все приложение. Насколько я мог заметить, это сработало, по крайней мере, в дизайнере, но как только я запускаю приложение, стиль Mahapps применяется снова. На данный момент я узнал, что это происходит потому, что Orchestra вводит новый стиль в систему после запуска.
Поэтому я попытался добавить стиль непосредственно в Views / Windows (Generic.xaml
содержит тот же код, что и описано выше):
<catel:DataWindow.Resources>
<ResourceDictionary Source="../Themes/Generic.xaml"/>
</catel:DataWindow.Resources>
Это сработало частично, но не так, как предполагалось. Стиль был применен к базовым c элементам управления, но окно и компоновка были искажены.
Наконец, я взглянул на источники оркестра, но не смог найти, где происходит инъекция, и я не смог получить полезную информацию в документации. Итак, мой вопрос: есть ли способ применить собственный стиль поверх оболочки Orchestra Mahapps?