2016-09-01 51 views
0

在我的VSTO應用程序級別的詞外掛程序中,我試圖將網格添加到UserControl以使其佈局一致。不能在VSTO Word Addin中使用網格

但是,當我嘗試聲明網格時,Visual Studio抱怨無法找到類型或名稱空間「網格」。我通過將PresentationFramework程序集添加爲項目引用並導入System.Windows.Controls來解決了此錯誤,但現在我遇到了一個更大的問題:Visual Studio抱怨「UserControl」是「System.Windows.Controls.UserControl 「和」System.Windows.Forms.UserControl「。

我檢查了我的.cs文件的頂部,發現它已經默認導入System.Windows.Forms,現在它也在導入System.Windows.Controls。

我想知道爲什麼VSTO項目默認導入System.Windows.Forms在第一個地方而不是System.Windows.Controls和兩個命名空間的主要區別是什麼,因爲在我的WPF應用程序中我使用系統。 Windows.Controls。謝謝!

回答

1

從原產地VSTO是基於表單的工具集,而基於XAML的UI選項僅來自後期。顯然你仍然可以使用System.Windows.Forms並在你的XAML應用程序中引用它,所以當添加XAML引用時,如果兩者都存在(我總是傾向於碰到XAML和Forms MessageBox歧義接口),那麼存在一些不明確的項目,並且您需要爲不明確的項目加上前綴。

我所做的是試圖在XAML方面全面或決定轉移到Forms方面。

可能VSTO是一種比較舊的技術,到目前爲止,項目模板是基於Forms libs開始的,但您可以自由地完全進入XAML世界。我今天的解決方案完全基於XAML,但我偶爾會回到表單(例如做一個快速演示)。

所以它只是一個技術選擇,VSTO會回溯很長一段時間,所以它從Forms開始。如果您喜歡(我有偏見,我喜歡這項技術)或堅持使用Forms技術,請使用新的閃亮XAML技術。你可以同時使用它們。