在DLL项目中没有创建WPF窗口?

时间:2010-08-26 08:28:15

标签: wpf dll window

为什么Visual Studio不允许我在DLL项目中创建WPF窗口?

我通过在Application Project中创建一个窗口并将其复制到我的DLL项目来“解决”它。 我还发现我可以创建一个UserControl并将基类更改为“Window”。

但如果我不得不这样做,那可能是因为我不应该这样做......

4 个答案:

答案 0 :(得分:78)

创建项目时,请确保项目类型为WPF User Control Library

如果不是没有汗水,只需编辑csproj文件并确保<ProjectTypeGuids>下的Project/PropertyGroup元素包含以下GUID

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

另外,请确保在项目中引用PresentationFramework和System.Xaml,否则您的代码中将不会获得任何WPF。

答案 1 :(得分:7)

我是这样做的: 1)创建&#34; WPF应用程序&#34; 2)删除App.xaml 3)更改项目属性 - &gt;应用程序输出类型:到类库(最初是Windows应用程序)

否则你会收到错误:

&#34;库项目文件无法指定ApplicationDefinition元素&#34;

&#34;项目文件包含无效的属性值&#34;

答案 2 :(得分:7)

您可以尝试添加新的WPF用户控件项并将其更改为Window。

添加新项目 - > WPF-&gt;用户控制

在XAML中:

<UserControl>标记更改为<Window>

在CS中:

将基类从System.Windows.Controls.UserControl更改为System.Windows.Window

答案 3 :(得分:4)

您是什么意思Visual Studio不允许您在DLL项目中创建WPF窗口?你的意思是,如果你右键单击项目,没有选项可以在那里添加一个窗口吗?

如果是这种情况,我认为这意味着您创建的项目类型不是WPF项目类型。当我想要升级WinForms项目以使用WPF时,我遇到了类似的事情 - 请参阅this question以获取更多信息。