无法在 VSTO Word 插件中使用网格

Cannot use Grid in VSTO Word Addin

在我的 VSTO 应用程序级 word 插件中,我试图将 Grid 添加到 UserControl 以使其布局连贯。

然而,当我尝试声明网格时,Visual Studio 抱怨找不到类型或命名空间 "Grid"。我通过将 PresentationFramework 程序集添加为项目引用并导入 System.Windows.Controls 解决了这个错误,但现在我遇到了一个更大的问题:Visual Studio 抱怨 "UserControl" 是 [=20] 之间的模糊引用=] 和 "System.Windows.Forms.UserControl".

我检查了我的 .cs 文件的顶部,发现它已经默认导入 System.Windows.Forms,现在,它也在导入 System.Windows.Controls。

我想知道为什么 VSTO 项目默认首先导入 System.Windows.Forms 而不是 System.Windows.Controls 以及这两个命名空间之间的主要区别是什么,因为在我的 WPF 应用程序中我使用 System.Windows.Controls。谢谢!

最初 VSTO 是一组基于表单的工具,而基于 XAML 的 UI 选项仅来自后来的几年。显然你仍然可以使用 System.Windows.Forms 并在你的 XAML 应用程序中引用它,所以当添加 XAML 引用时,如果两者都存在的话会有一些不明确的项目(我总是倾向于 运行 到XAML 和 Forms MessageBox 歧义接口),您需要为歧义项添加前缀。

我所做的是尝试要么在 XAML 方面充实,要么决定转向表格方面。

可能是 VSTO,现在是一种较旧的技术,项目模板化是基于 Forms 库开始的,但您可以完全自由地进入 XAML 世界。今天我自己的解决方案完全基于 XAML,但我时不时地回到 Forms(例如做一个快速演示)。

所以这只是一种技术选择,VSTO 可以追溯到很久以前,所以它是从 Forms 开始的。如果您愿意,可以选择闪亮的 XAML 新技术(我有偏见,我喜欢这种技术),或者坚持使用 Forms 技术。您可以同时使用它们。