目录
安装 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
以下方法来自于微软 GitHub 开源项目 WPF:
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 项目) 都将引用相同的文件, 共享一个 Assenbly 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>
确保 .net core WPF 项目 CoreHiWPF 是启动项目
如果. net core WPF 项目 CoreHiWPF 已经高亮, 就不用管了. 否则, 需要选中项目 CoreHiWPF , 右击后选 "Set As Start up project".
试用 XAML Designer
此时关闭所有打开的文件, 双击项目 `HiWPF 中的 MainWindow.xaml, 就可以在 XAML Designer 中看到空白的 WPF Windows 了.
按需修改 MainWindow.xaml 和相应的. cs
接下来, 我在 MainWindow.xaml 的 Grid 中加入了两行, 一行放的是一个含有文本可换行的 Label, 另一行是 Exit 按钮. 然后在 Exit 按钮上加入了 Click 事件, 在 Windows 上加入了 Loaded 事件.
代码改完之后, F5 运行, 最后的界面如下:
项目代码已推到 GitHub, 欢迎 Fork 和 star.
传送门: https://github.com/yanglr/.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