首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让Visual Studio2010的“添加用户控件”创建WPF控件?

如何让Visual Studio2010的“添加用户控件”创建WPF控件?
EN

Stack Overflow用户
提问于 2011-05-15 00:46:17
回答 1查看 4.9K关注 0票数 3

我有一个使用"Class Library“项目模板创建的类库。如果我在解决方案资源管理器中右击该库并选择“添加>用户控件”,Visual Studio将添加一个WinForms UserControl。这不是我想要的--我想要“添加>用户控件”来添加一个WPF用户控件。

我已经添加了对WPF程序集(WindowsBase、PresentationFramework和PresentationCore)的引用,并且这个库中已经有了一些WPF UserControls,一切都可以编译。我的库没有对WinForms程序集(System.Drawing和System.Windows.Forms)的引用。但是很明显,适当的引用对于Visual Studio来说是不够的,因为当我尝试Add > User Control时,它会将WinForms引用添加到我的项目中,然后创建一个WinForms UserControl。

我可以将WPF用户控件添加到WPF应用程序项目中,然后将其移动到我的库中。但这是一件痛苦的事情,我更希望它一开始就能正常工作。

我想我可能在.csproj文件中遗漏了某种神秘的XML元素,它告诉Visual Studio默认使用哪个设计器,如果我添加了具有正确的隐蔽GUID的正确的XML元素,它将开始正常工作。如果我可以创建一个新的WPF控件库,我可能会比较这两个项目文件,并弄清楚这一点。但是,我使用的是Visual,它没有用于C#控件库项目的模板,所以我不太走运。

我需要对类库的.csproj文件做些什么才能让VS2010中的Add > New User Control添加一个WPF UserControl?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-15 00:53:08

项目文件中的子项目类ids通常会影响Visual Studio上下文菜单和项目的行为方式。最简单的做法是将项目重新创建为:

  • WPF用户控件库

而不是“类库”。如果您已经创建了要在子项目类ids中手动编辑的项目,则可以通过在文本编辑器(如Visual Studio本身)中打开".csproj“文件来进行编辑,但这很容易造成比您所修复的更多的损坏。

我相信但还没有测试过另一种类型库也可以工作:

  • WPF自定义控件库

它旨在保存除UserControl对象之外的其他类型的控件,但是作为WPF子项目类型,上下文菜单也可以正确地用于您所描述的用例。

编辑:

为了完整起见,我刚刚测试了如何手动添加子项目GUIDS。将以下行添加到.csproj文件中的第一个PropertyGroup

代码语言:javascript
运行
复制
  <PropertyGroup>
    ...
    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
  </PropertyGroup>

未使用Visual Studio速成版进行测试。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6003288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档