目录

  • 解决 VS2019 中.net core WPF 暂时无法使用 Designer 的临时方法
  • 安装 vs 2019 professional/enterprise版本
  • 在vs的设置里,勾选.NET core下的"Use preview SDK"
  • 使用vs自带的模板,选择其中的 .net core WPF 创建Project, 取名为"CoreHiWPF"
  • 在刚创建的Solution中使用vs自带的模板,选择其中的.net framework WPF添加新的project,取名为"HiWPF"
  • 更改 .net core WPF项目 CoreHiWPF 的Assembly Name,使得两个项目一致
  • 确保 .net core WPF项目 CoreHiWPF 是启动项目
  • 试用 XAML Designer
  • 按需修改MainWindow.xaml和相应的.cs

解决 VS2019 中.net core WPF 暂时无法使用 Designer 的临时方法

以下方法来自于微软github开源项目 dotnet/samples:

dotnet/samples - WPF Hello World sample with linked files,请放心使用。

此篇文章是上篇文章解决vs2019中暂时无法为.net core WinForms使用 Designer 的临时方法的姊妹篇,但对WPF而言实现起来比WinForms简单很多。核心思想还是借壳~

目前.net core下的WPF项目中的XAML可视化设计器(Designer)尚不可用,后续的Visual Studio 2019 Update才会支持该部分的功能。不过目前我们想在vs2019中使用 Designer,有一种临时解决方法。

可以使用Visual Studio来处理链接文件(Link files)的功能,并将其XAML Designer用于Classic Framework (即.net Framework的WPF项目)。

具体的解决方法是在同一个 Solution下创建两个项目:

  • 用于设计WPF应用程序的.NET Framework应用程序.net Framework 项目)
  • 用于运行WPF应用程序的.NET Core应用程序(.net core项目)

而两个应用程序(.net core项目和相应.net Framework 项目)都将引用相同的文件,共享一个Assembly Name

安装 vs 2019 professional/enterprise版本

先安装 vs 2019 professional/enterprise版本,安装好.net core 3.0 SDK,此时试着创建一个.net core下的 WPF应用,

设置好相关项目名和存放路径后,会弹出:


下一步骤,勾选.NET core下的"Use preview SDK"会解决这个问题。

当然也可使用命令行/Powershell来创建。

  • 打开命令行/Powershell
  • 使用cd命令,切换到自己平时存vs项目的路径(比如我切换到D:\Coding)
  • 输入命令dotnet new wpf -n "CoreHiWPF"

在vs的设置里,勾选.NET core下的"Use preview SDK"

设置完,重启vs才能生效。
此时用vs打开刚才的Solution即可。

使用vs自带的模板,选择其中的 .net core WPF 创建Project, 取名为"CoreHiWPF"

在刚创建的Solution中使用vs自带的模板,选择其中的.net framework WPF添加新的project,取名为"HiWPF"

此时Solution中的文件目录为:

更改 .net core WPF项目 CoreHiWPF 的Assembly Name,使得两个项目一致

右键点击 .net core WPF项目 CoreHiWPF,选择最后的Properties, 然后将其Assembly Name 改为HiWPF.

接着右键该项目,选"Edit CoreHiWPF.csproj"。

按下图加入如下相应代码:

  <ItemGroup><ApplicationDefinition Include="..\HiWPF\App.xaml" Link="App.xaml"><Generator>MSBuild:Compile</Generator></ApplicationDefinition><Compile Include="..\HiWPF\App.xaml.cs" Link="App.xaml.cs" /></ItemGroup><ItemGroup><Page Include="..\HiWPF\MainWindow.xaml" Link="MainWindow.xaml"><Generator>MSBuild:Compile</Generator></Page><Compile Include="..\HiWPF\MainWindow.xaml.cs" Link="MainWindow.xaml.cs" /></ItemGroup>

根据评论区 @lindexi 的建议改进了一下,确实更合理一些:

此时项目配置文件CoreHiWPF.csproj的内容为:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"><PropertyGroup><OutputType>WinExe</OutputType><TargetFramework>netcoreapp3.0</TargetFramework><UseWPF>true</UseWPF><AssemblyName>HiWPF</AssemblyName></PropertyGroup><ItemGroup><Compile Update="..\HiWPF\**\*.xaml.cs"><DependentUpon>%(Filename)</DependentUpon></Compile></ItemGroup><ItemGroup><Page Include="..\HiWPF\**\*.xaml"><SubType>Designer</SubType><Generator>MSBuild:Compile</Generator></Page></ItemGroup></Project>

然后重新编译运行,再使用 XAML Designer 来修改,一切工作正常。

多谢 @lindexi 的改进建议~

确保 .net core WPF项目 CoreHiWPF 是启动项目

如果.net core WPF项目 CoreHiWPF 已经高亮,就不用管了。否则,需要选中项目 CoreHiWPF ,右击后选“Set As Start up project”.

试用 XAML Designer

此时关闭所有打开的文件,双击项目HiWPF中的MainWindow.xaml,就可以在XAML Designer中看到空白的WPF window了。

按需修改MainWindow.xaml和相应的.cs

接下来,我在MainWindow.xamlGrid中加入了两行,一行放的是一个含有文本可换行的Label,另一行是Exit按钮。然后在Exit按钮上加入了Click事件,在Window上加入了Loaded事件。

代码改完之后,F5运行,最后的界面如下:

项目代码已推到github,欢迎Forkstar.
传送门: .netCore-WPF_Designer , 如果觉得自己配置起来麻烦,也可以 clone 下来自己体验一把喔~

查看本人最近其他原创作品请移步 (想第一时刻阅读本人最新文章请在博客园上关注我):

  • 解决vs2019中暂时无法为.net core WinForms使用 Designer 的临时方法

  • ASP.NET Core开发者成长路线图

  • 中国.NET:各地微软技术俱乐部汇总(持续更新中...)

  • 微软XAML Studio - WPF, Sliverlight, Xamarin, UWP等技术开发者的福音

  • 微软正式发布Chromium Edge开发预览版

  • 一大波开发者福利来了,一份微软官方Github上发布的开源项目清单等你签收

  • 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器

  • JS实现页面复制文字时自动加版权

  • 开发小白也毫无压力的hexo静态博客建站全攻略 - 躺坑后亲诉心路历程

  • 改进博客园Markdown显示功能(加代码行号、显示代码所用编程语言)

  • 当今最全面可用的微博分享组件嵌入方法(亲测2019年2月仍有效)

  • 前端小白也能快速学会的博客园博客美化全攻略 - 附源码

  • 史上最最靠谱,又双叒叒简单的基于MSXML的XML解析指南-C++

参考资料:

dotnet/samples - WPF Hello World sample with linked files

转载于:https://www.cnblogs.com/enjoy233/p/workaround_to_use_the_designer_in_wpf_Core_App.html

解决VS2019中.net core WPF 暂时无法使用 Designer 的临时方法相关推荐

  1. 解决 VS2019 中.net core WPF 暂时无法使用 Designer 的临时方法

    以下方法来自于微软github开源项目WPF: dotnet/samples - WPF Hello World sample with linked files,请放心使用. 此篇文章是上篇文章解决 ...

  2. ] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题

    ] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题 参考文章: (1)] 解决myeclipse中新建javaweb工程,无法使用Web App Lib ...

  3. 解决vs2019中暂时无法为.net core WinForms使用 Designer 的临时方法

    以下方法来自于微软github开源项目WinForms: dotnet/winforms - Using the Classic WinForms Designer in WinForms Core, ...

  4. 解决vs2019中vsvim无法使用ctrl+[的问题

    在vs2019中安装vsvim后,在vsvim的设置中针对ctrl + [选择使用vsvim进行键位控制,但是仍然未能将该组合识别成esc.通过查询资料显示,需要在全局的键位设置中将涉及ctrl + ...

  5. php 计算字符串相邻最大重复数_php如何解决字符串中重复字符的次数并且排序输出的方法...

    在php开发中有这样的需求.在指定的字符串中提取出每个单位字符出现的次数,并且倒序排序,截取前4个.留作使用.刚拿到这个需求的时候,我想了想,难道要把每个字符全部切割出来之后,一一的比对计算出相应的出 ...

  6. 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题

    在myeclipse中新建的java web工程,lib中的jar包无法自动加载工程,不能像eclipse那样使用Web App Libraries. 即使添加了Web App Libraries这个 ...

  7. 解决PHP7中微信(小程序)mcrypt_module_open() 无法使用的解决方法

    在PHP7 中 mcrypt_module_open()已经被 OPENSSL 取代. 当然你要是还是想用 mcrypt_module_open()就安装 mcrypt 扩展. 使用 openssl ...

  8. 解决VS2019中”This function or variable may be unsafe.”警告

    原因分析: 这是vs为了防止内存泄漏的警告,大可不必理会(反正我们做题也影响不到 解决方法: 在最开头加一行#define _CRT_SECURE_NO_WARNINGS即可

  9. 解决IE6中PNG透明显示灰底的8种方法

    方案一 - 滤镜解决方案 介绍:滤镜从IE4.0被微软正式引入,所以我们可以使用滤镜解决IE6的PNG透明问题,滤镜不仅可以实现目前CSS3的一些旋转效果而且还可以引入图片.注意:此方法在部分版本的I ...

最新文章

  1. RESTful架构和RESTful API设计总结
  2. cobaltstrike安装_CobaltStrike + Metasploit 组合安装
  3. 机房收费系统——总结
  4. 颜色空间缩减color space reduction
  5. 2018年12月19日
  6. 怎么判断间隙过渡过盈配合_什么是间隙配合、过盈配合、过渡配合?它们在汽车上有哪些应用?...
  7. shell三种 for循环方式
  8. 一种雷达和电子海图图像叠加方法
  9. 一小时看懂Ruby代码基本逻辑(自定义metasploit模块)
  10. python-多元线性回归模型
  11. 37.softmax多元逻辑回归
  12. 六年一轮回:大数据改变的,不仅仅是我的专业!
  13. java编译程序包不存在_在cmd下编译Java源文件文件出现程序包xxxx不存在
  14. 南京工程学院计算机英语,南京工程学院是什么意思
  15. CodeForces 1K-1400R-1324D
  16. vue3以及vue2自定义封装v-model
  17. C语言 - 运输公司对用户计算运输费用。路程(s km)越远,每吨·千米运费越低。(用switch实现)
  18. 雷鸣的游戏人生(六) --- 如何开始学习编程?
  19. 风靡全球3500万用户!realme真我8款潮玩新品亮相
  20. 带你一文读懂SaaS版多租户商城系统对多品牌企业的应用价值

热门文章

  1. leetcode-Basic Calculator-224
  2. 分治法求最大和最小值
  3. centos5.5 下面 lnmp环境遇到的小问题
  4. 关于 IHTMLDocument4 在 Delphi7.0 中不能编译的的解决方法
  5. Vue三大核心之三(插槽)
  6. 刘徽割圆法转化成matlab,刘徽割圆术动画演示
  7. 关于eclipse新建web项目,提示:The superclass javax.servlet.http.HttpServlet was not found on the Java解决办法...
  8. 算法与数据结构(九) 图论:最短路径问题
  9. 物联网大数据的爆发只是一个开始
  10. 使用JWT保护你的Spring Boot应用 - Spring Security实战