有的時候,咱們須要在程序中嵌入Web瀏覽器,其實.Net Framework中自己就提供了WebBrowser控件,自己這個是最簡單易用的方案,但不知道是什麼緣由,這個控件在瀏覽網頁的時候有些莫名的卡頓,有的時候甚至能達到好幾秒,嚴重影響體驗。git
這個時候,咱們能夠考慮使用第三方瀏覽器來代替系統的WebBrowser,常見的方案是使用版本帝Chrome,Chrome自己提供了供第三方程序嵌入的方案Chromium Embedded Framework (CEF),但這個是C++的接口,在.Net程序中使用仍是有必定的工做量的。不過目前已經有一些開源的項目完成了這一封裝,其中的一個佼佼者就是CefSharp,WPF和WinForm的封裝都實現了,本文就簡單的介紹一下如何在WPF程序中使用CefSharp來嵌入Chrome瀏覽器。github
安裝: web
安裝的過程很是簡單,只要使用NuGet安裝CefSharp.Wpf便可。瀏覽器
PM> Install-Package CefSharp.Wpf 網站
安裝過程自己比較常規,不過值得一提的是,這個包很是大,因爲集成了x86和x64的版本,整個包(加上幾個依賴的包)達到了200多mb,基於衆所周知的緣由,和Nuget的訪問一直不大通暢,有時還抽風整個過程很是漫長,必定要有足夠的耐心以及人品。this
修改編譯選項: spa
因爲Chrome是原生程序,目前CefSharp還不能作到32位和64位自動識別,不能使用默認的AnyCPU的編譯選項,須要修改一下配置管理器,改爲x86或x64才行。3d
使用: orm
使用的過程比較簡單,直接使用以下代碼便可。blog
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
var setting = new CefSharp.CefSettings();
CefSharp.Cef.Initialize(setting, true, false);
var webView = new CefSharp.Wpf.ChromiumWebBrowser();
this.Content = webView;
webView.Address = "http://www.cnblogs.com/TianFang/";
}
本文只是簡單的介紹了一下CefSharp的基本用法,下篇文章中再介紹下更多介紹一下如何進行更加深刻的定製,在CefSharp的網站上自己就有比較詳細的例子,感興趣的朋友能夠研究一下。
更多的教程能夠參考這篇文章: CefSharp中文幫助文檔