C#中使用Chrome内核的CefSharp WinForm访问页面

时间:2022-06-25 16:57:12

前言

IE速度慢兼容性差不用多说,而VS C#自带控件工具箱中的WebBrowser使用的是系统自带的IE内核,如果涉及Web应用的访问,抛弃也是必然的。

本文将介绍基于Chrome内核的CefSharp WinForm组件的安装与使用。

一.组件的安装

新建WinForm项目后在 项目->管理NuGet程序包->浏览中搜索CefSharp,选择WinForm版本后直接安装,会有以下四个依赖项:

cef.redist.x64.3.3239.1723
cef.redist.x86.3.3239.1723
CefSharp.Common.63.0.3
CefSharp.WinForms.63.0.3

如果你恰巧没法使用在线的NuGet管理,那么可以手动去https://www.nuget.org/搜索下载以上包。

二.基础使用

CefSharp的易用性很好,不愧为Chrome内核。

Form1.cs:创建browser后填充到整个Form中。

public partial class Form1 : Form
    {
        private readonly ChromiumWebBrowser browser;

        public Form1()
        {
            InitializeComponent();
            browser = new ChromiumWebBrowser("http://www.baidu.com")
            {
                Dock = DockStyle.Fill,
            };
            this.Controls.Add(browser);
        }

        ~Form1()
        {
            browser.Dispose();
        }

        private void btn_Click(object sender, EventArgs e)  // 可以准备一个text文本框一个btn用于自己输入网址后跳转
        {
            if (Uri.IsWellFormedUriString(txt_url.Text, UriKind.RelativeOrAbsolute))
            {
                browser.Load(txt_url.Text);
            }
        }
    }

Programe.cs:初始化与清理Cef组件

static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Cef.Initialize();
            Application.Run(new Form1());
            Cef.Shutdown();
        }
    }

三.运行效果

C#中使用Chrome内核的CefSharp WinForm访问页面