簡體   English   中英

如何使Visual Studio 2010的“添加用戶控件”創建WPF控件?

[英]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上下文菜單以及項目的行為方式。 最簡單的方法是將項目重新創建為:

  • WPF用戶控件庫

而不是“類庫”。 如果您已經通過在文本編輯器(如Visual Studio本身)中打開“.csproj”文件來手動創建要在子項目類ID中編輯的項目,但它很容易造成比您修復方式更多的損壞。

我相信但是沒有測試另一種類型的庫也可以工作:

  • WPF自定義控件庫

它旨在保存除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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM