c# - VSIX WPF 向导而不是表单
问题描述
我正在开发 Visual Studio 的扩展,我目前正在考虑使用 WPF 而不是 Forms 作为模板向导。
我已经使用 Forms 完成了所有工作,但我更喜欢 WPF 的外观和使用 WPF,但我不确定我正在尝试做的事情是否可行 - 或者我应该如何正确地去做。
我的 VSIX 包含您的典型布局,它是一个包含 3 个项目的解决方案;
1. MyProjectTemplate (C# 项目模板)
2. MyProjectVSX (C# VSIX 模板)
3. MyWizardWPF (WPF 应用程序)
我也在使用 MahApps.Metro 让它看起来更时尚一些。添加(通过 NuGet)并由 MyProjectVSX 和 MyWizardWPF 引用。
虽然它有效——当我去创建一个模板时 WPF 出现了——它完全没有任何样式。它基本上只是看起来像一个 Windows 95 应用程序。
我假设这与 App.xml 相关并且无法找到它。但是我完全不知道如何将所有这些联系在一起。我收到一堆警告,它无法找到各种与样式相关的东西。例如;
System.Windows.ResourceDictionary 警告:9:找不到资源;ResourceKey='MahApps.Brushes.IdealForeground'
System.Windows.ResourceDictionary 警告:9:找不到资源;ResourceKey='MahApps.Brushes.ThemeForeground'
我尝试过使用 ResourceDictionary URI,将 App.xml 复制到我的 VSX 项目中。尝试将其构建为类库而不是应用程序,但无济于事。
我在这里想要实现的目标是否可行......?
解决方案
好吧,我能够参考 MahApps.Metro。好像我大大忽略了这一切。但是,我仍然不确定这是否是正确的方法。但它有效。
我在 Window.xaml 本身中引用了 MahApps.Metro,而不是通过 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 样式。我还没有找到解决这个问题的方法。
推荐阅读
- python - 我有两列数据需要比较。如果第 1 列中的值匹配,我需要添加它们对应的第 2 列值
- bluetooth - 解释 adafruit BLE 方法的标志以设置 GATT 特征
- javascript - Mongodb find 方法总是返回文档的所有元素
- javascript - 使用“connection”关键字连接到 Node JS websocket 的问题
- python - 设置 Huey 以将 Redis 与 Flask 一起使用
- angular - _co.addCourse() 不是一个函数——即使我已经在 ts 文件中定义了它
- numbers - 在easyphp devserver 17中更改端口号
- angular - 以角度将 Json 映射到对象
- html - 如果它只是一个搜索功能,我是否需要将我的输入字段包装在一个表单中?
- javascript - 使用 PersistGate 加载屏幕不呈现