- 5
- 0
- 约2.93千字
- 约 6页
- 2021-03-16 发布于山东
- 举报
NanUI for Winform 发布,让 Winform 界面设计拥有无限可
能
2016-05-24
个评论
收藏
我要投稿如今, 尽管 WPF 、UWP 大行其道,大有把 Winform 打残干废的趋势。但是还是有那么一波顽固不化的老家伙们固守着 Winform
好吧,既然都说 Winform 做得软件不如 WPF 界面美观效果
绚丽,那么我们就找一个方法让
DevExpress 和 ComponentOne
Winform 也拥有漂亮的界面。
都是不错的选择, Telerik
虽说是做
Asp.net
组件出生的,但是他家的
UI for Winform
做得也很不错。 稍等,那问题来了, 这些组件收费昂贵不说,
而且是年付,起价都得几百美刀。对于我这种卢瑟程序员来
说,是支付不起这样高昂的费用的。那有人要说了,你咋不
用破解版的呢?是的,可以用,而且也在用,但是这样一来
我的内心是无比纠结的,用破解的盗版的,我就得欠另外那
群程序员一大个人情, 我这人虽然卢瑟, 不喜欢欠别人人情!
开个玩笑而已: )那么,有没有什么开源的,免费的,好用
的解决方案呢?
研究了一段时间,本人发现用浏览器做壳用 HTML 和 CSS
呈现软件界面是一种新趋势,当然这里指的浏览器不是 .net
自己带的 WebBroswer 控件,原因不用我多说, 大家都明白。
这里说的是大名鼎鼎的 CEF —— Chromium Embedded
Framework
,通俗点也就是谷歌浏览器的核心了。
CEF
作为
一个开源的浏览器核心组件对
HTML5
、CSS3
和
JS
标准的
支持不用我过多介绍,都是极好的。目前很多大厂都在使用
CEF 作为软件界面呈现,比如鹅厂大名鼎鼎的微信桌面版,
网易的云音乐等等。所以,如果将 CEF 引入 Winform 作为
界面呈现也是可行的。
CEF 的 .net 实现众多,最后相中了 CefSharp 和
ChromimunFX 两个开源项目,对比之, CefSharp 除了传统的浏览器功能外还实现了离屏渲染, 但是作为 Winform 忠狗的我来说,我并不需要离屏渲染这项高端技术。最终
ChromiumFX 使用 PInvoke 的方式调用 CEF 的 API ,更接
近“原生”,也更利于定制。经过个把月的披星戴月,在
ChromiumFX 的基础上本人完成了自己的 CEF 界面封装,
暂时命名为 ___NanUI for Winform ,目前处于预览阶段。
那么,下面就来看看本人封装的 NanUI 完成了什么工作。 上
图先 ~~
NanUI for Winform
NanUI 目前处于预览开发阶段,还有一些问题并未解决,因
此暂时不传 GitHub ,等稳定一些会考虑开放源代码。
目前实现的功能:
无标题窗口
支持 css 标记 -webkit-app-region:drag|nodrag
支持网页资源打包内嵌
支持编译 Any Cpu 类型的项目
其他 ChromiumFX 该有的功能
标记
那么,下面分项介绍上面列举的功能。
无标题窗口
你以为这里的无标题窗口就是单纯的把 FormBorderStyle
置为 None 吗?当然不是。实现基础是调用 DWM 的
设
DwmExtendFrameIntoClientArea ,然后重绘了下窗口的边
框,处理了各种鼠标事件。那有人要问了,那作着些事情不
是狗解手吗,直接 FormBorderStyle 设置个 None 不就解决
了?是的, 这是可以解决, 但是窗口就丧失了各种投影效果,
各种放大缩小的效果。 其次,还有各种鼠标消息和 HITTEST
消息,需要从 ChromiumFX 中传递到窗体上,要不然
ChromiumFX 一旦 Dock 然后 Fill 到窗口上,窗口还会相应
鼠标事件才怪。所以,作为 UI 的基础,拖拽、放大、缩小
等基本的操作都实现了。
支持 css 标记 -webkit-app-region:drag|nodrag 标记
在网页元素的 css 里打上“-webkit-app- region:drag ”标记就,可以实现拖动该元素来移动窗体。
如图所示,需要拖动的地方,就是 drag ,在标记过 drag 的
元素上某些不给拖动的位置(例如关闭,最大化,最小化按
钮位置)打上 no-drag 就拖动不了了。
其他没标记的地方随意,拖动事件会直接交给 JS 。
支持网页资源打包内嵌
NanUI 支持将做好的网页 html 、css 、js 、图片等文件直接作
为嵌入资源编译到当前项目或者独立的 DLL 中,框架会自动
调用嵌入的网页资源。既然用
您可能关注的文档
最近下载
- 2024年湖南汽车工程职业学院单招职业技能测试题库及答案(历年真题).docx VIP
- 广东省潮州市2024-2025学年高三上学期期末教学质量检测物理试卷.docx VIP
- 上海电力学院大一机械制图C习题本解答(造福学弟,不谢)-新版.pptx
- 广东省潮州市2024-2025学年高二上学期期末教学质量检测物理试卷(含答案).docx VIP
- 新生儿身份识别制度.pptx
- 康迪泰克空气弹簧.pdf VIP
- LY/T 2817-2017山桐子栽培技术规程.pdf
- 缓刑担保承诺书范文.docx VIP
- 记账实操-电梯保养公司会计账务处理分录.doc
- 脑机接口专利关键技术白皮书-复旦大学-2025.pdf VIP
原创力文档

文档评论(0)