2010-08-26 34 views
37

Visual Studio不會讓我在DLL項目中創建WPF窗口的原因是什麼?在DLL項目中沒有創建WPF窗口?

我通過在應用程序項目中創建一個窗口並將其複製到我的DLL項目中來「解決」它。 我還發現我可以創建一個UserControl並將基類更改爲「Window」。

但是如果我不得不做這種方式,它可能是因爲我不應該這樣做...

回答

66

創建項目時請確保項目類型爲WPF User Control Library

如果它不是那麼無汗,只是Project/PropertyGroup下編輯的csproj文件,並確保<ProjectTypeGuids>元素包含以下的GUID

<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

此外,還要確保您引用PresentationFramework和System.Xaml在你的項目中,或者你不會在你的代碼中獲得任何WPF。

+0

你好弗洛裏安, 感謝您的回答,我確實錯誤的項目類型和使用「類庫」。 :-s – 2010-08-30 11:38:43

+6

現在.NET 4+ System.Xaml還需要與PresentationFramework一起使用。 – Phil 2014-10-09 21:21:18

4

你是什麼意思的是Visual Studio將不會讓你在一個DLL項目創建一個WPF窗口?你的意思是,如果你右鍵點擊該項目,那麼沒有選擇在那裏添加一個窗口?

如果是這種情況,我認爲這意味着您創建的項目類型不是WPF項目類型。當我想升級一個WinForms項目來使用WPF時,我遇到了類似的問題 - 請參閱this question瞭解更多信息。

+1

嗨, 感謝您的回答,我確實錯誤的項目類型,並使用「類庫」。 :-s – 2010-08-30 11:39:04

6

我做這種方式: 1)創建 「WPF應用程序」 2)刪除App.xaml中 3)變更項目屬性 - >應用程序輸出類型:到類庫(原來有Windows應用程序)

否則你會得到錯誤:

「庫項目文件不能指定ApplicationDefinition元素」

「的項目文件中包含的屬性值是無效」

1

您可以嘗試添加新的WPF用戶控制項並將其更改爲Window。

添加新用品 - > WPF->用戶控制

在XAML:

變化<UserControl>標籤爲<Window>

在CS:

更改基類從System.Windows.Controls.UserControlSystem.Windows.Window