起因: 想通过 WinFrom 的 WebBrowser 控件查看用 PowerBI 发布到 Web 的数据图表。
尝试了两个失败方案后在 NuGet 上以 WebBrowser 为关键词搜了一圈,发现了 CefSharp.WinForm。
优势
要谈 CefSharp.WinForm 的优势,就要看看下面两个失败案例。
WebBrowser
一开始准备直接使用 WinForm 自带的 WebBrowser 控件,结果上来就打脸——无法运行js 脚本。
又参考 SOF 的好些答案折腾了一下 WebBrowser,最终也只是实现了不报错,页面依然无法正常显式。
DotNetBrowser
从上面那个 SOF 一眼就看到了一个叫 DotNetBrowser 的包。没有细看,按照官网给的 Quick Start 就开始用,结果程序运行时就报错提醒我缺少 License。再回官网一看,有点小贵。
简介
CefSharp 允许你将 Chromium 嵌入 .NET 程序中。
CefSharp lets you embed Chromium in .NETapps. It is a lightweight .NET wrapper aroundthe Chromium Embedded Framework (CEF) by Marshall A. Greenblatt. About 30% ofthe bindings are written in C++/CLI with the majority of code here is C#. Itcan be used from C# or VB, or any other CLR language. CefSharp provides bothWPF and WinForms web browser control implementations.
相关资源:
PS:最坑爹的是教程中间提到针对新老版本有 A、B 两种不同的配置方法,结果看了评论才知道 A、B 都得配置。
CefSharp FAQ
Q:Cef.Shutdown() 执行后,再调用 Cef.Initialize 会导致程序崩溃。
A:Cef.Initialize 和 Cef.Shutdown 在整个应用程序生命周期内都只能执行一次。能够反复创建与 Dispose 的是ChromiumWebBrowser 对象。