为什么Visual Studio不允许我在DLL项目中创建WPF窗口?
我通过在Application Project中创建一个窗口并将其复制到我的DLL项目来“解决”它。 我还发现我可以创建一个UserControl并将基类更改为“Window”。
但如果我不得不这样做,那可能是因为我不应该这样做......
答案 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以获取更多信息。