[点晴永久免费OA]C#嵌入谷歌浏览器内核CefSharp
|
admin
2022年12月16日 17:24
本文热度 1956
|
1.右击项目,选择.net框架为4.5以上:
2.右击项目,选择“管理Nuget程序包”,点击“浏览”,搜索“CefSharp”,选择“CefSharp WinForms”下载安装。
安装的过程非常简单,只要使用NuGet安装CefSharp.Wpf即可。
PM> Install-Package CefSharp.Wpf
安装过程本身比较常规,不过值得一提的是,这个包非常大,由于集成了x86和x64的版本,整个包(加上几个依赖的包)达到了200多mb,基于众所周知的原因,和Nuget的访问一直不大通畅,有时还抽风整个过程非常漫长,一定要有足够的耐心以及人品。
修改编译选项:
由于Chrome是原生程序,目前CefSharp还不能做到32位和64位自动识别,不能使用默认的AnyCPU的编译选项,需要修改一下配置管理器,改成x86或x64才行。
安装之后到项目的引用下查看,会出现:CefSharp、CefSharp Core、CefSharp WinForms
3.窗口中拖入一个panel控件,用于存放浏览器载体,然后上代码:
using CCWin;
using CefSharp;
using CefSharp.WinForms;
using log4net;
using System;
using System.Windows.Forms;
namespace ChildForm
{
public partial class BIMForm : CCSkinMain
{
private static ILog logger = LogManager.GetLogger(typeof(BIMForm));
ChromiumWebBrowser chromeBrowser = null;
public BIMForm()
{
InitializeComponent();
InitBrowser("www.baidu.com");
}
/// <summary>
/// 关闭窗口事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BIMForm_FormClosing(object sender, FormClosingEventArgs e)
{
// 释放浏览器对象
if (chromeBrowser != null && !chromeBrowser.Disposing)
{
// 关闭浏览器调试工具
chromeBrowser.CloseDevTools();
// 此方法会同时关闭窗口,我们真只可以直接调用该方法,同时关闭浏览器及窗口
// 关闭浏览器
chromeBrowser.GetBrowser().CloseBrowser(true);
chromeBrowser.Dispose();
}
}
/// <summary>
/// 加载窗口事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BIMForm_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 窗口大小改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BIMForm_SizeChanged(object sender, EventArgs e)
{
}
/// <summary>
/// 设置浏览器网页
/// </summary>
/// <param name="bimUrl">网页地址</param>
private void InitBrowser(string bimUrl)
{
try
{
if (string.IsNullOrEmpty(bimUrl))
{
MessageBox.Show("网页地址为空!");
return;
}
if (!Cef.IsInitialized)
{
Cef.Initialize(new CefSettings());
}
chromeBrowser = new ChromiumWebBrowser(bimUrl);
skinPanel1.Controls.Add(chromeBrowser);
chromeBrowser.Dock = DockStyle.Fill;
}
catch (Exception x)
{
logger.Error("设置浏览器网页异常:" + x.Message);
}
}
}
}
该文章在 2022/12/16 17:35:40 编辑过