![](/img/trans.png)
[英]How can I make a WPF custom control automatically appear in the Visual studio toolbox?
[英]How can I make Visual Studio 2010's “Add User Control” create a WPF control?
我有一個使用“類庫”項目模板創建的類庫。 如果我在解決方案資源管理器中右鍵單擊此庫並選擇“添加>用戶控件”,Visual Studio將添加WinForms UserControl。 這不是我想要的 - 我想要“添加>用戶控件”來添加WPF用戶控件。
我已經添加了對WPF程序集(WindowsBase,PresentationFramework和PresentationCore)的引用,我已經在這個庫中有一些WPF UserControl,並且所有內容都會編譯。 我的庫沒有對WinForms程序集的引用(System.Drawing和System.Windows.Forms)。 但顯然正確的引用並不足以成為Visual Studio的線索,因為當我嘗試添加>用戶控件時,它會將WinForms引用添加到我的項目中,然后創建一個WinForms UserControl。
我可以將WPF用戶控件添加到我的WPF應用程序項目中,然后將其移動到我的庫中。 但這是一種痛苦,我寧願讓它在第一時間正常工作。
我想我可能在我的.csproj文件中遺漏了某種神秘的XML元素,告訴Visual Studio默認使用哪個設計器,如果我添加正確的XML元素和正確的神秘GUID,它將開始正常工作。 如果我可以創建一個新的WPF控件庫,我可能會比較這兩個項目文件並想出來。 但是,我使用的是Visual C#Express,它沒有WPF控件庫項目的模板,所以我在那里運氣不好。
我需要對類庫的.csproj文件做什么,以便VS2010的添加>新用戶控件將添加WPF UserControl?
項目文件中有子項目類ID,它們影響Visual Studio上下文菜單以及項目的行為方式。 最簡單的方法是將項目重新創建為:
而不是“類庫”。 如果您已經通過在文本編輯器(如Visual Studio本身)中打開“.csproj”文件來手動創建要在子項目類ID中編輯的項目,但它很容易造成比您修復方式更多的損壞。
我相信但是沒有測試另一種類型的庫也可以工作:
它旨在保存除UserControl
對象之外的其他類型的控件,但是作為WPF子項目類型,上下文菜單也適用於您正在描述的用例。
編輯:
為了完整起見,我剛剛測試了如何手動添加子項目GUIDS。 將此行添加到.csproj文件中的第一個PropertyGroup
:
<PropertyGroup>
...
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
</PropertyGroup>
未使用Visual Studio Express進行測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.