WPF嵌入网页的三种控件

WPF嵌入网页的三种控件最近在开发一个客户的需求,要求是要做桌面室内导航,终端用的是windows系统。说实话开始接到这个项目还是有点难的,因为做了十几年JAVA开发还真没搞过windows相关的开发工作。虽然一直知道JAVA和c#差不多,但是毕竟没有做过实际的工

大家好,欢迎来到IT知识分享网。

最近在开发一个客户的需求,要求是要做桌面室内导航,终端用的是windows系统。说实话开始接到这个项目还是有点难的,因为做了十几年JAVA开发还真没搞过windows相关的开发工作。虽然一直知道JAVA和c#差不多,但是毕竟没有做过实际的工程心里还是没底的。后来觉得吧为了以后能拓展自由开发的方向还是接了这个项目。

这个项目需求的难点是导航系统,那就需要地理位置相关的技术实现。我了解到的webgl就是这方面的佼佼者,而大名鼎鼎的cesium地图引擎就是基于webgl实现。但是webgl是基于浏览器的,而且要求的是比较现代化的浏览器。WPF是客户端开发显然不具备这个能力,但是可以让WPF调用浏览器去完成网页的渲染不就解决问题了吗。通过查各种资料了解到在WPF中加载html web内容目前有三种控件,他们分别是

WebBrowser、WebView2、CefSharp。

开始的时候不知道这三个有什么区别,兜兜转转走了不少弯路,今天花时间把这三个控件做一个简单的梳理供大家参考。

先说WebBrowser,这个控件能加载html页面,也能调用html内部函数交互,缺点就是控件依赖IE浏览器,也就是说你的设备上必须安装了IE浏览器才能使用。我们都知道IE浏览器是比较老的一款网页浏览器,一些比较现代化的技术是不支持的,很显然ie就不支持WEBGL,很显然我这个项目用不了WebBrowser控件。

其次就是WebView2控件,这个月和WebBrowser功能差不多,也能支持加载html网页,也是需要依赖安装了浏览器。不同的是WebView2依赖的是微软最新的浏览器Edga。Edga也是一个现代化的网页浏览器,所以webgl定然是支持的。但是终端上需要安装Edga,换句话说一般需要win10及以上系统或者手动先安装Edga浏览器才行。经过评估,我们的程序是安装到一个终端设备上,不能要求用户为了使用导航必须安装一个浏览器吧,所以这个项目也不能选择WebView2。

最后就是CefSharp。CefSharp采用的是谷歌浏览器的内核,我们知道谷歌浏览器一直都是很跟上时代的,最新的web技术基本都支持,很显然webgl那肯定没问题。另外使用CefSharp最大的好处还是你不需要额外安装浏览器,因为CefSharp是直接内嵌了谷歌浏览器,这不就完美解决了上面那两个控件的缺点嘛。

最后做一个总结,在WPF开发中 WebBrowser、WebView2、CefSharp 这三个控件都支持加载web网页。但是WebBrowser、WebView2 需要依赖用户安装了ie和edga浏览器,而CefSharp不需要。WebBrowser默认用的是比较老旧的ie浏览器,因此如果你的网页依赖比较现代化的技术ie有可能不支持。WebView2默认用的是edga浏览器可以满足现代化web技术要求,但是缺点就是需要安装了这个浏览器才行。最后就是CefSharp基本填补了上面两个控件的所有缺点,但它本身的缺点就是需要依赖内嵌浏览器组件,所以发布时候程序体积较大。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/87424.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信