适用于 .NET Core 的 Windows 窗体设计器和 WPF 设计器

2023-12-04

我最近听说.NET Core(.NET Core 3.0)的alpha版本支持Windows Forms和WPF。但是 Visual Studio 设计器(和 Visual Studio)不支持.NET Core版本Windows 窗体和 WPF。

有没有办法让 Visual Studio 设计器(和 Visual Studio)与 .NET Core 3.0 一起使用,或者是否有任何其他设计器或 IDE 可用于与 .NET Core 3 一起使用?


Windows 窗体 - Visual Studio 2019(16.5 预览版 1 - .NET CORE 3.1)

从 Visual Studio 16.5 Preview 1 开始,Visual Studio 中内置了对 Windows 窗体设计器的支持。使用设计器:

  • 您必须使用 Visual Studio 16.5 Preview 1 或更高版本。
  • 您需要在 Visual Studio 中启用设计器。转到工具 → 选项 → 环境 → 预览功能,然后选择使用 .NET Core 应用程序的预览 Windows 窗体设计器选项。

enter image description here

了解更多信息:

  • Visual Studio 16.5 Preview 1 中 .NET Core Windows 窗体设计器的更新.
  • WinForms and WPF.NET CORE 存储库。

请记住,在此版本中,设计器尚不支持许多控件。

旧版本的解决方法

从 Visual Studio 16.5 Preview 1 开始,Visual Studio 中内置了对 Windows 窗体设计器的支持。但对于旧版本,您可以使用以下解决方法:

目前,有一个解决方法用于将经典 .NET Windows 窗体设计器用于 .NET CORE Windows 窗体项目。

解决方法依赖于将 Classic WinForms 应用程序和 CORE WinForms 应用程序放在同一解决方案中,并具有相同的根命名空间。

为了添加新的可设计项目,每次要添加新项目时,都需要将其添加到经典项目中,然后将生成的 3 个文件(.cs、.designer.cs、.resx)移动到 CORE 应用程序,然后添加它们作为经典应用程序的链接。

对于编辑,由于它们在经典应用程序中可作为链接使用,因此请在经典应用程序的设计器中对其进行编辑。所有更改对 CORE 应用程序都是可见的。

准备解决方案以使用适用于 .NET Core Winforms 应用程序的 Windows 窗体设计器

  1. 创建 Windows 窗体 .NET Core 应用程序。 (查看步骤和要求.)
  2. 在 Visual Studio 中打开项目并保存包含解决方案的项目。
  3. 右键单击解决方案并添加新项目→ 从模板中,选择 Windows 窗体项目,并将其命名为与 Core app +“.Designer”相同的名称,然后单击“确定”。
  4. 在 Classic 框架项目的属性中,将默认命名空间设置为与 Core 应用程序相同的默认命名空间。
  5. 删除两个项目中的所有现有文件并保存更改。

添加表单或用户控件

每次要添加新的表单或用户控件时,都需要执行以下步骤:

  1. 在经典框架项目中,Add New Item
  2. 选择 Windows 窗体或用户控件
  3. 在设计器中进行一些更改,例如调整表单大小,以便生成并保存 resx 文件。
  4. 在解决方案资源管理器中,右键单击表单并选择“剪切”。
  5. 在核心应用程序中,粘贴所有项目。(表单、设计器、resx)。
  6. 在经典应用程序中,右键单击并选择添加现有项目。
  7. 浏览打开的对话框到核心应用程序文件夹并选择这 3 个添加的文件,然后单击添加按钮附近的下拉菜单并选择添加为链接
  8. 编译解决方案。
  9. 使用 Mad Kristensen 在经典应用程序中重新嵌入文件文件嵌套扩展或通过编辑项目文件。

现在,每当您需要在 Core Form 或 UserControl 文件之一上使用设计器时,只需使用经典 Windows 窗体设计器打开经典框架项目中的链接文件即可。

WPF - VS 2019 (16.0.3 .NET CORE 3.0)

WPF .NET Core Designer 的 GA 版本已与 .NET Core 3.0 同时发布,并随 Visual Studio 一起发布。

参考:

WPF 设计器完全独立于 Windows 窗体设计器。我们与 .NET Core 3.0 同时发布了 WPF .NET Core Designer 的 GA 版本,它随 Visual Studio 一起提供。在 Visual Studio 版本 16.3.0 中,我们遇到了启用 XAML 设计器属性默认设置为 false 的问题。这意味着当您单击 .xaml 文件时,设计器不会自动打开。升级到最新的 Visual Studio 版本 16.3.1,此问题已修复。修复此问题的另一个选项是转到“工具”->“选项”->“XAML 设计器”并选中“启用 XAML 设计器”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适用于 .NET Core 的 Windows 窗体设计器和 WPF 设计器 的相关文章

随机推荐

  • 向 sys.excepthook 添加函数

    假设我有这样的东西 它会向logging critical import sys def register handler orig excepthook sys excepthook def error catcher exc info
  • 如何在 64 位 Windows 上安装 SciPy?

    如何在我的系统上安装 SciPy 对于 NumPy 部分 SciPy 所依赖的 实际上有一个适用于 64 位 Windows 的安装程序 numpy 1 3 0 win amd64 py2 6 msi 是直接下载URL 2310144字节
  • Java - 通过 Java 套接字广播语音

    我创建了一个从客户端接收声音的服务器应用程序 然后广播该声音 该声音以字节形式存储 并将字节发送回连接到服务器的客户端 现在我只使用一个客户端进行测试 该客户端正在接收回语音 但声音一直断断续续 有人可以告诉我我做错了什么吗 我想我理解声音
  • Python 2 中的扩展元组解包

    是否可以在 Python 2 中模拟扩展元组拆包 具体来说 我有一个 for 循环 for a b c in mylist 当 mylist 是大小为 3 的元组列表时 它可以正常工作 如果我传入大小为 4 的列表 我希望相同的 for 循
  • Angular 2 变更检测 - 如何解决组件之间的循环依赖关系?

    我读到 Angular 2 变更检测是单向的 从组件树的顶部到底部 并且在一次通过后变得稳定 这意味着没有多个变更检测周期 考虑到这些假设 如果我们的父组件和子组件具有相互依赖的属性 会发生什么情况 例子 根据用户事件 父组件更新子组件属性
  • 卷曲 cookie 处理

    是否有可能使用 cURL 时 并非每个用户都使用相同的 cookie 因为我存储得到的 cookie 很酷 但是这个 cookie 会被每个人使用 而且应该如此 因为它是一个登录 cookie Charlie 这是 cookie 工作原理的
  • 语法错误:当前未启用对实验性语法“jsx”的支持

    我无法使用我创建的 npm 组件包 我已经成功发布了该包 但是当我在新代码中使用它时 它显示此错误 SyntaxError home trinendra Desktop react test node modules iconbox1 in
  • SSIS:创建具有不同行格式的平面文件

    我想创建一个平面文件输出 其中行的格式不同 文件有标题行 中间数据行 页脚行 文件如下所示 H deptcode123 deptNameXYZ totalemp300 E Sam Johnson address1 empCode1 many
  • window.open() 中的 name 参数是什么

    请有人告诉我这个窗口的名称是什么window open 是标题名称还是java脚本语言中的某个ID windowName 为新窗口指定的名称 该名称可用于再次引用该窗口 打开窗口后 您会想用它做各种各样的事情 例如移动它然后你就可以做
  • 如何使用面板上的图形类绘制多色文本?

    我想在面板上绘制以下文本 这是一个多颜色的文本 我找到了这个article关于绘制彩色文本 我用单词替换了字符 但它不起作用 我使用FillPath DrawPath来绘制文本 my code private void Form1 Pain
  • 将递归Python代码转换为非递归版本

    除非我们开始增加 unique 和 n symbols 和长度 否则此处提供的代码将有效 例如 在我的计算机上 n symbols 512 length 512 distinct 300 最终会出现此错误RecursionError 比较中
  • Windows批处理文件将X个文件从一个文件夹移动到另一个文件夹

    如果文件少于 20 个 我尝试使用批处理文件以 30 个块为单位移动文件 DataLoc 我修改了代码一个先前的问题 问题在于FMove文件的部分 无论我在里面放什么for线 它给了我一个错误 我希望这个有 HoldLoc 值 但由于我遇到
  • Javascript 对象和 JSON 对象有什么区别

    谁能用一个例子告诉我 Javascript 对象和 JSON 对象之间的区别 JavaScriptobject是 Javascript 中的一种数据类型 仅在 Javascript 中才有意义 你经常会看到 Javascript对象字面量像
  • 即使在postgres中使用listen_addresses ='*',远程登录也不起作用

    我想使用远程主机登录 postgres 我已经使用listen addresses 配置了postgresql conf文件 我已经配置了 pg hba conf 文件 host all all 0 0 0 0 0 md5 但我仍然无法登录
  • CSS3 标签朝右并使用位置或:after

    我正在尝试在 CSS 中构建这个形状 但我不知道如何将三角形 考虑到我有一个矩形作为标签的 主体 一个三角形作为尖端 朝右 因为我正在处理位置 所以当标签都可以具有不同的大小时 如何让三角形出现在矩形之后 我就是搞不出来 您可以检查小提琴
  • 在网络浏览器中输入 google.com 后按 Enter 键后会发生什么

    当我在网络浏览器中输入 google com 后按 Enter 键后 到底发生了什么 第一个数据包去往何处以及从那里去往何处 我想要详细信息 所以请有人帮助我 您是否尝试过研究输出traceroute www google com从命令行
  • 我不明白 Delphi 中的 Application.ProcessMessages 正在做什么[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我是德尔福的新手 我的主管向我解释说 Application ProcessMessages 可以防止应用程序冻结并分配一些额外的计算时间 但是在这个命令的文档中总是解释一些关于
  • 有没有办法修改 Jersey 生成的 XML 响应以包含样式表信息?

    在 JAXB 中 这是可能的 使用编组器对象 我不知道如何使用泽西岛做到这一点 我想知道是否有一种方法可以以某种方式注入类似的东西 在生成的 xml 响应中 请参阅 XmlHeader 注释 将其附加到您的资源方法中 例如这样 GET Pr
  • 纸张元素导入在 python 中不起作用

    Paper 元素无法在 python django 环境中导入 并且 出现导入错误 Uncaught TypeError Failed to resolve module specifier polymer polymer polymer
  • 适用于 .NET Core 的 Windows 窗体设计器和 WPF 设计器

    我最近听说 NET Core NET Core 3 0 的alpha版本支持Windows Forms和WPF 但是 Visual Studio 设计器 和 Visual Studio 不支持 NET Core版本Windows 窗体和 W