C#客户端嵌入Chrome浏览器的实现(非IE)

客户端软件,也就是传统的Winform软件,在很多时候是很好用的。因为在做一些打印、本地设备操作的时候,纯Web系统还是存在很多局限性的。例如很多驱动你需要单独写cab包啦,交互式实现调试很困难啦,浏览器适配问题啦等等。这个时候,Winform结合Web的方式,就是一种比较好的选择。

虽然.net本身支持WebBrowser,但是WebBrowser这个东西是基于本地操作系统IE浏览器的,一些CSS的样式解析啦,还有一些权限什么的,还是没有办法很好的控制。这时候我们就会想要把Chrome浏览器嵌入过来用了,目前有些网站几乎很少支持IE。

最早网上有Webkit的一些控件,但是现在已经不提供更新维护了。
截止目前为止,CefSharp是一个比较好的解决方案。CefSharp是嵌入的Chromium浏览器,基本等同chrome。

笔者这里用的是VS2019

首先是先搭建基本的开发环境。

  1. 新建Winform应用程序,FrameWork版本4.6
  2. 在解决方案管理器上,右键单击引用,选择“管理NuGet程序包”。
  3. 点击浏览选项卡,搜索CefSharp,在列表中选择CefSharp.WinForms,安装CefSharp包,会自动安装相关引用包。
  4. 打开引用列表,看到有CefSharp,CefSharp.Core,CefSharp.Winforms这三个包就OK了。
    然后说一下基本的用法。先实现把ChromeWebBrowser嵌入到窗体中去并打开百度好了。
    public ChromiumWebBrowser browser;
    public void InitBrowser(){
    Cef.Initialize(new CefSettings());
    browser = new ChromiumWebBrowser (“www.baidu.com”);
    this.Controls.Add(browser);
    browser.Dock = DockStyle.Fill;
    }
    然后再窗体构造函数中,InitializeComponent()之后调用InitBrowser()方法,将browser添加到窗体中去。
    这样运行就能打开百度的页面了。

具体CefSharp操作详见:
https://github.com/cefsharp/CefSharp/wiki/CefSharp中文帮助文档

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的示例代码,演示如何在C# WinForm中使用CefSharp控件来嵌入浏览器: 首先,你需要安装CefSharp控件。你可以在Visual Studio中通过NuGet包管理器来安装CefSharp。 然后,在WinForm中添加一个CefSharp控件。你可以在设计器中拖动控件,或者通过代码来创建控件。在本例中,我们将控件命名为“chromiumWebBrowser”。 接下来,在窗体加载时,我们需要初始化CefSharp控件。你可以在窗体的Load事件中添加以下代码: ```csharp private void Form1_Load(object sender, EventArgs e) { Cef.Initialize(new CefSettings()); chromiumWebBrowser.Load("https://www.google.com"); } ``` 其中,Cef.Initialize(new CefSettings())用于初始化CefSharp控件,chromiumWebBrowser.Load("https://www.google.com")用于加载一个网页。 最后,在窗体关闭时,我们需要释放CefSharp控件的资源。你可以在窗体的FormClosing事件中添加以下代码: ```csharp private void Form1_FormClosing(object sender, FormClosingEventArgs e) { Cef.Shutdown(); } ``` 完整的示例代码如下: ```csharp using CefSharp; using System; using System.Windows.Forms; namespace WinFormCefSharp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Cef.Initialize(new CefSettings()); chromiumWebBrowser.Load("https://www.google.com"); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { Cef.Shutdown(); } } } ``` 希望这个示例能够帮助你在C# WinForm中嵌入浏览器控件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值