C#Winform使用CefSharp将WebBowser控件替换为Chrome内核
2021-05-30 07:17
先废话一段 ,好久没写博客了,也是跟环境工作有关,之前做技术,天天博客园的翻着 (还是喜欢博客园,因为大家都无私分享交流啊,不像CSDN啥东西都要积分,鄙视之),现在偶尔需要个什么东西了才打开VS写写,刚一上来,看到以前关注的朋友还有坚持写博客的 ,以前还时不时的记录下心情想法,现在也没那个兴趣了,7年改变一个人,看来是吧,回归主题~
公司参加某信息展会,需要把几个网站系统类似PPT轮播一样在一个屏幕展示出来,找不到解决方案,然后我就试着揽下了这个任务,先想到用winform的webbrowser,尝试了下没问题可以实现,但是有些网站系统需要加载比如阿里控件等,webbrowser支持的是IE内核,很多系统需要chorme的支持,于是在网上找方法 ,先找到了WebKit.NET这个控件,添加了进去,但是还是加载不出来阿里的控件,第一天就放弃了,今天闲来无事,想着再试试,继续百度一下,搜到了一篇技术贴:http://www.codeceo.com/article/cefsharp-charp-app-chrome.html (竟然是码农网),里面提到这个CefSharp:
CefSharp可靠,快速,完全开源,不需要任何额外的依赖就可以安装到最终用户(除VC ++ Runtime 2013以外)。CefSharp同样可工作于WPF项目。
CefSharp v51 x86(32位) https://raw.githubusercontent.com/hgupta9/CefsharpSite/gh-pages/files/CefSharp51_x32.zip
CefSharp v51 x64(64位) https://raw.githubusercontent.com/hgupta9/CefsharpSite/gh-pages/files/CefSharp51_x64.zip
我没有用NuGet安装,直接下载的,建议直接将解压的文件全部粘贴到Debug目录下,然后通过项目引用--添加引用,将红框中三个dll文件引用到项目中,
需要在.cs和Designer.cs页面头文件引用集加上这两行代码:
using CefSharp;
using CefSharp.WinForms;
设计面板拖入webbrowser控件,此时当前控件还是winform自带的,需要在Designer.cs改下代码:
//private System.Windows.Forms.WebBrowser webBrowser1;
private ChromiumWebBrowser webBrowser1;
将默认生成的第一行代码改成第二行,此时声明的才是CefSharp.WinForms的webbrowser控件
this.webBrowser1 = new ChromiumWebBrowser("www.baidu.com");
至此,F6运行不报错的情况下F5应该能看到百度页面了。
。。。
。。。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 以下是重点 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
但是,我的VS报错,我用的VS2010,.NETFramework4.5 提示应该是版本不对,ChromiumWebBrowser没有引用集,但确实是已经将CefSharp添加到项目中,且引用成功了,然后继续百度:https://www.cnblogs.com/Leo_wl/p/6239233.html#_label1(还是博客园niubility),看到这个帖子中一个方式:
所以只能通过工具-程序包管理器-程序包管理控制台
手动命令行导入版本v49。0.1的,输入命令Install-Package
CefSharp.WinForms -Version
49.0.1
回车等待执行完成。
我试着执行了一下,然后提示安装成功,F6了一下,竟然编译通过,报错没有了,应该是将程序及退回到V49版本(我去百度CefSharp下载低版本,官网上没有响应的低版本提供包,所以这个方式可行),然后我需要阿里控件的页面也能顺利加载控件正常显示了 ,大功告成~
代码就不贴了,主要是想记录下引用了CefSharp.dll后VS报错的解决方式,相比WebKit.NET的30多M,CefSharp的资源包更大些解压完有100+M了,如果有同样需求的朋友可以两个控件都参考下。
上一篇:HTML的基础知识
文章标题:C#Winform使用CefSharp将WebBowser控件替换为Chrome内核
文章链接:http://soscw.com/index.php/essay/89444.html