1.右擊項目,選擇.net框架為4.5以上:
2.右擊項目,選擇“管理Nuget程序包”,點擊“瀏覽”,搜索“CefSharp”,選擇“CefSharp WinForms”下載安裝。
安裝的過程非常簡單,只要使用NuGet安裝CefSharp.Wpf即可。
PM> Install-Package CefSharp.Wpf
安裝過程本身比較常規(guī),不過值得一提的是,這個包非常大,由于集成了x86和x64的版本,整個包(加上幾個依賴的包)達(dá)到了200多mb,基于眾所周知的原因,和Nuget的訪問一直不大通暢,有時還抽風(fēng)整個過程非常漫長,一定要有足夠的耐心以及人品。
修改編譯選項:
由于Chrome是原生程序,目前CefSharp還不能做到32位和64位自動識別,不能使用默認(rèn)的AnyCPU的編譯選項,需要修改一下配置管理器,改成x86或x64才行。
安裝之后到項目的引用下查看,會出現(xiàn):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>
/// 關(guān)閉窗口事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BIMForm_FormClosing(object sender, FormClosingEventArgs e)
{
// 釋放瀏覽器對象
if (chromeBrowser != null && !chromeBrowser.Disposing)
{
// 關(guān)閉瀏覽器調(diào)試工具
chromeBrowser.CloseDevTools();
// 此方法會同時關(guān)閉窗口,我們真只可以直接調(diào)用該方法,同時關(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)頁
/// </summary>
/// <param name="bimUrl">網(wǎng)頁地址</param>
private void InitBrowser(string bimUrl)
{
try
{
if (string.IsNullOrEmpty(bimUrl))
{
MessageBox.Show("網(wǎng)頁地址為空!");
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)頁異常:" + x.Message);
}
}
}
}
該文章在 2022/12/16 17:35:40 編輯過