引言
CefSharp 是一种将全功能符合标准的 Web 浏览器嵌入 C# 或 VB.NET 应用程序的简单方法。 CefSharp 具有用于 WinForms 和 WPF 应用程序的浏览器控件,以及用于自动化项目的无头(屏幕外)版本。 CefSharp 基于 Chromium Embedded Framework,即 Google Chrome 的开源版本。 CefSharp 采用现代 Web 标准,并支持 HTML5、JavaScript、CSS3 和 HTML5 音频/视频元素。 WebGL 支持 3D 内容,WebGL 使用 OpenGL/DirectX 进行硬件加速渲染。 CefSharp 包括用于 PDF、网页打印和 WebKit Inspector(开发人员工具)的嵌入式模块。 CefSharp 没有外部依赖项,并且 CefSharp 的完整版本只会为您的应用程序增加约 80 MB。 请参阅 CefSharp.MinimalExample 项目,了解使用 CefSharp 构建的可编译的最小示例应用程序。 在项目源中有更复杂的示例项目。
在WPF开发中,经常会有混合开发的需求,即在WPF中加载网页,目前最常用也是最流行的方式是CefSharp,它的功能非常强大,可以提供较为完善的开发和使用体验,但是CefSharp也有一定的缺点,如体积过大,配置繁琐等。值得兴奋的是,微软基于Edge浏览器推出了webview2控件,用于解决混合开发的痛点.
最近研究.net Core的时候,发现微软终于放弃IE内核,拥抱Chrome了,这也算是微软对开源的决心越来越大吧。作为桌面端程序开发人员,不管是使用Winform还是WPF,如果想在界面上加载HTMl代码,使用自带的WebBrowser会发现是灾难性的事件,WebBrowser万年不变的IE7内核让不管多绚丽多彩的HTMl暗然失色,于是开始寻找替代方案,而CefSharp就是不二之选,CefSharp使用的是CEF开源框架,CEF 是一个基于google chromiun的简单的框架。
源于Google官方
CEF ,全称Chromium Embedded Framework ,基于谷歌 Chromium项目的开源Web Browser控件,它的主要用途是嵌入了第三方应用以实现浏览器相关的功能。例如国内的360安全浏览器的兼容模式即IE的内核,极速模式即Chromium内核;最近微软新推出的Microsoft Edge也是基于Chromium开源项目实现的,看起来挺简洁的。
CEF地址:https://bitbucket.org/chromiumembedded/
而CefSharp是Cef的C#版本,让Chromium浏览器也可嵌入WinForms 和WPF中。
CefSharp地址:http://cefsharp.github.io/
CefSharp用途
关于CefSharp的用途,目前接触到的有:
1、部署开发的网页程序:我想B/S项目也不会专门造”轮子”来部署web应用程序;
2、定制开发浏览器:国内很多浏览器都是基于Chromium来包装的,如搜狗、360、QQ浏览器等;
3、特定的网页处理:例如网页爬虫,除了可以使用强大的Python来做,CefSharp也可完成;
4、客户端嵌入Web应用:例如项目中开发一套B/S应用,可以直接嵌入C/S中,不必重写大量代码。
如下图所示,为了使用Cesium框架在C/S项目中,在完成Cesium的B/S功能开发后,通过CefSharp可嵌入到C/S中使用。
示例一:使用CefSharp加载百度地图网页:
示例二:使用CefSharp加载Cesium球。