1.右擊項(xiàng)目,選擇.net框架為4.5以上:

2.右擊項(xiàng)目,選擇“管理Nuget程序包”,點(diǎn)擊“瀏覽”,搜索“CefSharp”,選擇“CefSharp WinForms”下載安裝。

安裝的過(guò)程非常簡(jiǎn)單,只要使用NuGet安裝CefSharp.Wpf即可。
PM> Install-Package CefSharp.Wpf
安裝過(guò)程本身比較常規(guī),不過(guò)值得一提的是,這個(gè)包非常大,由于集成了x86和x64的版本,整個(gè)包(加上幾個(gè)依賴(lài)的包)達(dá)到了200多mb,基于眾所周知的原因,和Nuget的訪(fǎng)問(wèn)一直不大通暢,有時(shí)還抽風(fēng)整個(gè)過(guò)程非常漫長(zhǎng),一定要有足夠的耐心以及人品。
修改編譯選項(xiàng):
由于Chrome是原生程序,目前CefSharp還不能做到32位和64位自動(dòng)識(shí)別,不能使用默認(rèn)的AnyCPU的編譯選項(xiàng),需要修改一下配置管理器,改成x86或x64才行。


安裝之后到項(xiàng)目的引用下查看,會(huì)出現(xiàn):CefSharp、CefSharp Core、CefSharp WinForms
3.窗口中拖入一個(gè)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>
/// 關(guān)閉窗口事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BIMForm_FormClosing(object sender, FormClosingEventArgs e)
{
// 釋放瀏覽器對(duì)象
if (chromeBrowser != null && !chromeBrowser.Disposing)
{
// 關(guān)閉瀏覽器調(diào)試工具
chromeBrowser.CloseDevTools();
// 此方法會(huì)同時(shí)關(guān)閉窗口,我們真只可以直接調(diào)用該方法,同時(shí)關(guān)閉瀏覽器及窗口
// 關(guān)閉瀏覽器
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>
/// 設(shè)置瀏覽器網(wǎng)頁(yè)
/// </summary>
/// <param name="bimUrl">網(wǎng)頁(yè)地址</param>
private void InitBrowser(string bimUrl)
{
try
{
if (string.IsNullOrEmpty(bimUrl))
{
MessageBox.Show("網(wǎng)頁(yè)地址為空!");
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("設(shè)置瀏覽器網(wǎng)頁(yè)異常:" + x.Message);
}
}
}
}
該文章在 2022/12/16 17:35:40 編輯過(guò)