使用CefSharp在.Net程序中嵌入Chrome内核【完整教程】
前言:
目的是将一个Web界面镶嵌在winform中,并且全屏显示要求可以XML配置网址,以达到用web来模拟软件的效果。
先后接触过三个内核框架:Webkit.Net 、xilium.cefglue 、CefSharp
Webkit.Net: 下载方便,直接调用,但是内核版本过低不能显示 WebGL 对HTML5 和 javascript 支持不够好。
Xilium.CefGlue: 网上资料对比这个内核评价比较高对网页支持也相对完美,但是需要自己整合 cefbuilds 因为网站打不开所以下载不了对应版本cef。
CefSharp:最后选择了CefSharp 因为它已经整合了cef在里面(最新版),网上找cef下载链接怎么搜都是CefSharp 最后干脆用它,内核版本为Chromium 57 比较新。
这里放上一些链接,你们可以自己去了解,我了解的很浅薄。
开发环境:
VS 2015
.net framework 4.5.2
Nuget Package Manager (包管理工具)
下载与配置:
1.首先安装 Nuget,选择- 工具>扩展和更新>联机 搜索Nuget (如图)
安装好插件后启动,然后重启VS2015
2.下载cefsharp包文件: 三个版本,这里我们选择下载 winforms。
进入下载页面需要注意,我们依次要下载4个包文件,在页面左边选择 Download ,下载好第一个后再下载存在 依赖关系 的文件,Dependencies。(如图)
下载好CefSharp.Common 后再次下载 这个文件的 依赖包文件。(如下图)
4个包文件下载好后,我们就完成了一半。
配置包文件:
首先新建一个winform项目,然后选择 工具>NuGet包管理器>程序包管理器设置。
选择程序包源,点击加号添加包源,名称自己起,路径填你刚才下载的4个包文件的地址。(如下图):
修改好包源路径和名称后,点击更新,然后确定。(如下图):
路径设置好后我们就要添加包文件到项目。接下来我们选择 工具>Nuget 包管理器>程序包管理器控制台。
在控制台中输入命令:
Install-Package cefsharp.winforms -Source D:\cef\
cefsharp.winforms 是主包文件名
D:\cef\ 是文件的存放路径
粘贴好命令后我们回车,等待加载。(如图)
加载成功截图
OK 到这里 cefsharp.winforms 就加入到项目中来了, 我们需要按下 F5 对程序进行一次编译,编译通过就可以进行下一步操作。
下图显示编译失败,原因是程序无法自动识别 X86 还是 X64 ,所以我们要重新设置一下 配置管理器,改成x86或x64才行。
设置好后重新编译就可以了。
编辑代码
using CefSharp; using CefSharp.WinForms;
public Form1() { InitializeComponent(); InitBrowser(); }
public ChromiumWebBrowser browser; public void InitBrowser(){ Cef.Initialize(new CefSettings()); browser = new ChromiumWebBrowser ("www.google.com"); this.Controls.Add(browser); browser.Dock = DockStyle.Fill; }
运行程序,效果就出来了。
最后,还是要感谢前辈们在网上发表的帖子,当我完成后想到的第一件是就是整理出来一条思路来发表了这篇文章,方便以后使用,也可以给更多初学者提供参考。
this.FormBorderStyle = FormBorderStyle.None; //设置窗体为无边框样式 this.WindowState = FormWindowState.Maximized; //最大化窗体
参考资料:
使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器
使用CefSharp在.Net程序中嵌入Chrome浏览器
CefSharp.winforms
2017-04-27