使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法
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版本要相对应。

2. 在生成=》配置管理器中,将活动解决方案平台改成 x86 (CEF不能自适应 x86 | x64,必须选择一个目标),目标平台也必须和解决方案平台一致。


3. 针对VS2010,默认是没有NuGet包管理器,需要在VS工具条—扩展管理器中添加NuGet程序包管理器

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

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

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

执行后结果如下:

源码无法上传
使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法的更多相关文章
- web页面动态加载UserControl,并调用用户控件中的方法来初始化控件
1,HTML页 头部注册: <%@ Register Src="~/WorkLog/WorkLogNewV1/UserControl/CeShiBu.ascx" TagPre ...
- WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性
原文:WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性 如果你要自定义一个图片按钮控件,那么如何在主窗体绑定这个控件上图片的Source呢? ...
- 使用CefSharp在.Net程序中嵌入Chrome浏览器(二)——参数设置
在实现了.Net程序中嵌入Chrome浏览器后,下一步的个性化操作就是加入一些设置了,在前面的文章中,我们可以看到在使用Chrome控件前,有如下一个操作: var setting = new Cef ...
- 转-使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器
使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器 2016-09-23 分类:.NET开发.编程开发.首页精华0人评论 分享到:更多3 本文由码农网 – 小峰原创翻译,转载 ...
- JS获取用户控件中的子控件Id
用户控件 <asp:HiddenField ID="hfGradeId" runat="server" /> <asp:HiddenField ...
- asp.net在用户控件中使用ClientScript
在用户空间中调用ClientScript.RegisterClientScriptBlock方法 ClientScript的命名空间是System.Web.UI.Page,并且要实例化之后的Page才 ...
- WPF用户控件库 嵌入外部(VLC)exe
综合网上资源完成的自己的第一篇博客 ------------------------------------------------------------------------ 网上类似的贴子挺多 ...
- 使用CefSharp在.Net程序中嵌入Chrome浏览器(一)——简介
有的时候,我们需要在程序中嵌入Web浏览器,其实.Net Framework中本身就提供了WebBrowser控件,本身这个是最简单易用的方案,但不知道是什么原因,这个控件在浏览网页的时候有些莫名的卡 ...
- 使用CefSharp在.Net程序中嵌入Chrome浏览器(九)——性能问题
在使用CEF的过程中,我发现了一个现象:WPF版的CEF比Chrome性能要差:一些有动画的地方会掉帧(例如,CSS动画,全屏图片拖动等),视频播放的效果也没有Chrome流畅. 查了一下相关资料,发 ...
随机推荐
- 【HTML】模板
<!DOCTYPE html> <head> <base href="http://www.w3school.com.cn/i/" target=&q ...
- 利用Apache commons-net 包进行FTP文件和文件夹的上传与下载
首先声明:这段代码是我在网上胡乱找的,调试后可用. 需要提前导入jar包,我导入的是:commons-net-3.0.1,在网上可以下载到.以下为源码,其中文件夹的下载存在问题:FTPFile[] a ...
- 有关cxf与安卓客户端或者C客户端的中文乱码问题
前段时间在与C的客户端和安卓的客户端进行联调,首先我的方法接收的是C客户端所传递的数据,但是传递到方法内的中文就变成了乱码(我的方法的编码是utf8),最后通过String a = new Strin ...
- Linux Shell 1 - Print from terminal
Two ways to print info from terminal - echo & printf - Echo a. Exclamation mark is supported in ...
- 如何通过binlog获取我们想要的MySql语句?
前言 MySql的binlog一般用于我们对数据的恢复,以及从数据库对主数据库的复制和更新. 假设此时我们有一个需要查询和读取Mysql最近操作DDL的信息,我们需要怎么处理? 聪明的你可能已经想到了 ...
- 深度学习:Keras入门(二)之卷积神经网络(CNN)
说明:这篇文章需要有一些相关的基础知识,否则看起来可能比较吃力. 1.卷积与神经元 1.1 什么是卷积? 简单来说,卷积(或内积)就是一种先把对应位置相乘然后再把结果相加的运算.(具体含义或者数学公式 ...
- Java Socket 编程
1. 背景 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节.你可以直接使用这些类和 ...
- redis单机安装以及简单redis集群搭建
安装环境: 两台虚拟机都是Centos 7.0 IP分别为:192.168.149.132 192.168.149.133 Redis采用的版本是redis-3.2.4 集群是采用两台虚拟机模拟8个 ...
- 怎么用snapman一个人在三天内开发出一个复杂的软件开发项目管理系统
snapman是一个简单而强大的团队协作软件,在上面的信息可以是数据.可以是规则.也可以是自动化代码:最重要的它是一个可以开发的协作平台,所有信息都可以作用到所有人或机器上,大大减少了工作的复杂度.软 ...
- Lucene搜索引擎+HDFS+MR完成垂直搜索
介于上一篇的java实现网络爬虫基础之上,这一篇的思想是将网络收集的数据保存到HDFS和数据库(Mysql)中:然后用MR对HDFS的数据进行索引处理,处理成倒排索引:搜索时先用HDFS建立好的索引来 ...