从UWP项目移植到WinUI桌面版你需要做哪些事情
2021-05-04 18:39
1161 查看
就像文章标题说的我是打算写一篇从UWP移植到WinUI的帖子,本来打算是想写一篇WinUI的学习帖子,可是觉得市面上UWP的教程WPF的教程都是很多了,所以干脆就直接硬怼项目吧,先声明我不是来挖UWP的坟墓的。
话不多说,我是拿第三方的哔哩作为练手项目的,之所以选这个,大家也应该知道,云之幻做的UWP应用颜值也算是上层了,而且他的项目都做了很多的自定义的样式,刚好可以测试WinUI的兼容程度,看微软现在的意思好像对桌面版情有独钟,于是我就先用WinUI桌面版练手了,先上项目地址。
云之幻的原仓库
我移植的仓库
我主要做了哪些事情呢,首先我将uwp涉及的很多的访问网络的服务改成了接口,然后通过.net 自带的DI容器进行管理,用了asp.net core的同志肯定对自带的依赖注入不陌生。本来想把实现也改掉的,想着用.net的api写一遍,但是发现涉及的服务太多了,就放弃了。服务对应的接口如下图所示:
然后通过依赖注入管理服务,继续上图:
整体的首页对比图:
说说一些注意事项:
-
第一 应用启动默认是采用像WPF那样的窗口,而不是像UWP那样的Page,于是我就通过改造启动方法,将第一个页面换成了Page,然后就可以愉快的像用UWP那样操作了,具体的如 ad8 下图所示:
-
第二 如果你的UWP应用样式里使用了很多的CustomResource,请记得在WinUI里面进行删掉,因为我在测试的时候如果不删掉,会提示xaml格式错误,所以大家一定要记得删掉,或者说大家如果找出解决办法,也可以分享下,还有就是比如xaml里的color和font相关的一些结构体,目前好像还没迁移到Microsoft命名空间下,所以有时候需要单独引一下命名空间。
-
第三 关于应用的弹出层,目前我遇到的弹出层主要包括Content dialog 和那个popup,这个弹出的时候都要设置XamlRoot才能正常弹出,我理解的意思大概就是可能需要设置从谁那开始弹出的吧,需要一个引用关系吧,如图。
Content dialog的弹出
popup的弹出
如果你有UWP和WPF的一点基础,学习WinUI其实只需要看看官方的文档就行了,如果你真的想学WinUI,就看看我的练习仓库的代码吧。
WinUI的学习笔记
相关文章推荐
- 一个合格的项目经理都需要做哪些事情?
- IT项目管理需要做哪些事情
- 不同项目规模的项目经理需要做哪些事情
- React项目开发,你需要知道哪些
- 前端工作怎么包装简历,需要掌握哪些知识项目
- 有谁把rest应用到实际项目中吗?有哪些需要注意的地方?
- 个人接国外外包项目需要哪些技能
- 创建一个简单的spring boot项目需要注意哪些
- 数据链项目经理需要哪些知识储备?
- 总结做一个Hibernate 或Spring或Struts项目需要哪些基本的包
- 想要做一个完整的Javaweb项目需要掌握哪些技能
- [置顶] 在着手准备做一个开发项目(web前端),需要做哪些准备?
- Java Web项目开发需要掌握哪些技术?
- 项目经理之项目经理需要用哪些工具?
- Java Web项目开发到底需要掌握哪些技术?
- 从零开始启动一个项目,需要哪些准备工作
- Java Web项目开发到底需要掌握哪些技术?
- 在开发前端项目,需要考虑的几件事情。
- Java Web项目开发到底需要掌握哪些技术?
- 还原ad后无ad管理工具及Windows远程桌面需要开启哪些服务!