Мастер VSIX WPF вместо форм - PullRequest
       14

Мастер VSIX WPF вместо форм

0 голосов
/ 19 апреля 2020

Я работаю над расширением для Visual Studio и в настоящее время смотрю на использование WPF вместо форм для мастера шаблонов.

У меня все работает с формами, но я очень предпочитаю внешний вид и работа с WPF, но я не уверен, что то, что я пытаюсь сделать, возможно, - или как я должен go делать это правильно.

Мой VSIX состоит из вашего типичного макета, Это решение с 3 проектами:
1. MyProjectTemplate (C# Шаблон проекта)
2. MyProjectVSX (C# Шаблон VSIX)
3. MyWizardWPF (WPF App)

Я также использую MahApps.Metro, чтобы он выглядел немного более изящным , Добавлен (через NuGet) и на него ссылаются как MyProjectVSX, так и MyWizardWPF.

И пока он работает - WPF появляется, когда я go создаю шаблон - он полностью и совершенно отсутствует любые стили. В основном это выглядит как приложение Windows 95.

Я предполагаю, что это связано с приложением. xml, и оно не может найти его. Но я в полном недоумении, как собрать все это вместе. Я получаю кучу предупреждений о том, что не удалось найти различные вещи, связанные со стилем. Например;

System. Windows .ResourceDictionary Предупреждение: 9: ресурс не найден; ResourceKey = 'MahApps.Brushes.IdealForeground'
System. Windows .ResourceDictionary Предупреждение: 9: ресурс не найден; ResourceKey = 'MahApps.Brushes.ThemeForeground'

Я пытался поиграться с URI ResourceDictionary, копируя приложение. xml в мой проект VSX. Попытка построить его как библиотеку классов вместо приложения, но безрезультатно.

Возможно ли то, что я пытаюсь достичь здесь ...?

1 Ответ

0 голосов
/ 20 апреля 2020

Ну, я смог сослаться на MahApps.Metro. Похоже, я был сильно упущен из виду. Однако я до сих пор не уверен, что это правильный способ . Но это работает.

Я ссылался на MahApps.Metro внутри самого Window.xaml, а не через App.xaml, вот так;

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <!--  MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive!  -->
            <ResourceDictionary Source="/MahApps.Metro;component/Styles/Controls.xaml" />
            <ResourceDictionary Source="/MahApps.Metro;component/Styles/Fonts.xaml" />
            <!--  Accent and AppTheme setting  -->
            <ResourceDictionary Source="/MahApps.Metro;component/Styles/Themes/Dark.Blue.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>

Это также работает, если я создаю пользовательский элемент управления WPF, который сделает весь проект немного раздутым - но дизайнер не будет использовать стили MahApps.Metro. Я еще не нашел решение для этого.

...