用户控件”,Visual Studio 会添加一个 WinForms UserControl。这不是我-6ren">
gpt4 book ai didi

wpf - 如何使 Visual Studio 201 0's "添加用户控件”创建 WPF 控件?

转载 作者:行者123 更新时间:2023-12-04 23:45:09 25 4
gpt4 key购买 nike

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

我已经添加了对 WPF 程序集(WindowsBase、PresentationFramework 和 PresentationCore)的引用,并且我在这个库中已经有了一些 WPF 用户控件,并且所有内容都可以编译。我的库没有对 WinForms 程序集(System.Drawing 和 System.Windows.Forms)的引用。但显然正确的引用不足以作为 Visual Studio 的线索,因为当我尝试添加 > 用户控件时,它会将 WinForms 引用添加到我的项目中,然后创建一个 WinForms UserControl。

我可以将 WPF 用户控件添加到我的 WPF 应用程序项目中,然后将它移到我的库中。但这很痛苦,我宁愿首先让它正常工作。

我想我的 .csproj 文件中可能缺少某种神秘的 XML 元素,它告诉 Visual Studio 默认使用哪个设计器,如果我添加具有正确神秘 GUID 的正确 XML 元素,它将开始工作适本地。如果我可以创建一个新的 WPF 控件库,我可能可以比较这两个项目文件并解决这个问题。但是,我使用的是 Visual C# Express,它没有 WPF 控件库项目的模板,所以我运气不好。

我需要对我的类库的 .csproj 文件做什么,以便 VS2010 的添加 > 新用户控件将添加 WPF 用户控件?

最佳答案

项目文件中的子项目类 ID 会影响 Visual Studio 上下文菜单以及项目的一般行为方式。最简单的做法是将项目重新创建为:

  • WPF 用户控件库

而不是“类库”。如果您已经创建了项目,可以通过在文本编辑器(例如 Visual Studio 本身)中打开“.csproj”文件来手动编辑子项目类 ID,但它很容易造成比您修复这种方式更大的损害。

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

  • WPF 自定义控件库

它旨在容纳除 UserControl 对象之外的其他类型的控件,但作为 WPF 子项目类型,上下文菜单也适用于您描述的用例。

编辑:

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

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

未使用 Visual Studio Express 进行测试。

关于wpf - 如何使 Visual Studio 201 0's "添加用户控件”创建 WPF 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6003288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com