使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法

时间:2022-09-24 11:14:56

CEF(Chromium Embedded Framework, 嵌入式Chromium框架)是C/C++开发的库
目前 Google Chrome(Google浏览器),Chromium浏览器,Opera等都是基于CEF为核心,Webkit引擎的浏览器。

Xilium.CefGlue是对CEF项目的.net的包装,它是用P/Invoke的方式来调用CEF类库。
CEFSharp是用C++/CLI的方式来调用CEF类库的。

原先使用的是Xilium.CefGlue,如果只是单纯在窗口上实现的话是没问题的,由于我的需要做成用户控件,所以导致调用的时候一些dll文件无法调用到,用户控件无法正常加载到WinForm窗口上,后来改用CEFSharp

一. 开发环境


VS2010 +  CefSharp 49.0.1

二. 开发步骤(以CefSharp为例)

1. 新建Windows窗体应用程序 GoogleWebBrowserControl,使用.NET FrameWork 4.0,这里需要注意:CefSharp和.NET FrameWork版本要相对应。
使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法
2. 在生成=》配置管理器中,将活动解决方案平台改成 x86 (CEF不能自适应 x86 | x64,必须选择一个目标),目标平台也必须和解决方案平台一致。

使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法
3. 针对VS2010,默认是没有NuGet包管理器,需要在VS工具条—扩展管理器中添加NuGet程序包管理器

使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法

4.打开 NuGet 程序包管理器控制台:工具=>NuGet 程序包管理器=》程序包管理器控制台。搜索CefSharp.WinForm,选择版本和需要添加的项目,安装后会将所有需要的文件加入选择的项目中,并且将dll文件加入引入。

使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法

5.如果你已将CefSharp所有需要的文件已下载到本地,则第3、4步不需要操作,直接将下载的文件加入项目的Debug下,将CefSharp.Core.dll、CefSharp.dll、CefSharp.WinForms.dll文件引入项目中。

6.代码编写

使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法

注意:用户控件生成谷歌内核浏览器控件时,不能在用户控件中直接加载谷歌内核浏览器控件初始化的代码,必须到使用用户控件的页面中调用该方法。否则报错。
// 可选: (查看与cef有关的程序包)

7.新建项目,在项目中使用此用户控件,在后台代码中直接调用

使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法

执行后结果如下:

使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法

源码无法上传