一.导言
这个东西我以前没接触过,但是在公司项目中有用到,就顺便研究一下。今天刚测试了WinForm。我有时间尝试一下WPF是如何实施的。一开始很乱,有点麻烦,但是慢慢整理出来也不是很难。
二、开发步骤
1.下载并安装该程序集
当前程序集的最新版本是69.0.0。如果你想直接下载程序集的动态链接库,你可以从这个地址下载https://www.nuget.org/packages/CefSharp.WinForms/69.0.0。解释一下,以后的版本可能会变,具体地址也可能会变。所有的依赖库都可以通过nuget轻松获取。如果你的网络不好,可以先下载,然后添加项目参考。效果如下:
如果我们用Windows操作系统开发WinForm应用,可以用NuGet包来安装:
1PM>。安装包CefSharp。WinForms-69.0版。023网络命令行界面:45 >dotnet add软件包CefSharp。WinForms-69.0版。89 >;加入CefSharp。WinForms-69.0版。0
2.代码实现
1)主要形式实现:
主要形式如图所示:
主表单代码:
1使用头孢夏普。WinForms2使用系统。Windows . Forms34 NameSpaceCromWebbrowserforwindows forms 5 { 6 publipartialclasfrmbrower:form 7 { 8 privateCromWebbrowser web browser;910 publicfrmbrower()11 { 12 initializecomponent();13这。Load+= form 1 _ Load;14}1516privatevoidForm1_Load(对象发送器,系统。EventArgs e)17 { 18 web browser = NewCromWebbrowser(" www . cn blog . com ");19网络浏览器。Dock = DockStyle。填充;20 this . pnlcontainer . controls . add(网页浏览器);21网络浏览器。load(" www . cn blogs . com ");22 } 2324 private void btenter _ Click(对象发送者,系统。event args e)25 { 26 child form child = new child form(TxTurl。文字);27儿童。show();28}29}30}
2)子窗体实现:
子窗体如图:
代码实现:
1使用头孢夏普。WinForms2使用系统;3使用系统。Windows . Forms45 namespacromiumwebbrowserforwindows forms 6 { 7 publipartialclaschildform:form 8 { 9 privatecromiumwebbrowser web browser;10privatestringurl11 publicchildform()12 { 13 initializecomponent();14这。Load+= child form _ Load;15 } 1617 publichildform(string text):this()18 { 19 URL = text;20 } 2122 private void childform _ Load(object sender,EventArgs e)23 { 24 web browser = new chromwebbrowser(null);25网页浏览器。Dock = DockStyle。填充;26号。控件。添加(网络浏览器);27网络浏览器。load(URL);28}29}30}
3.解决问题
1)添加AnyCPU支持(cefsharp。“通用”在“任何中央处理器”平台上都无法正常工作。您需要指定平台(x86/x64)。这个错误其实是cefsharp的一个缺陷。CefsharpPic的项目团队表示,将在未来修复这个bug。暂时解决这个问题吧。)
[1],你必须把
& lt?xml version="1.0 "编码="utf-8 "?>。& ltproject ToolsVersion = " 14.0 " DefaultTargets = " Build " xmlns = " http://schemas . Microsoft . com/developer/msbuild/2003 " >;& lt导入项目= "..packagesCefSharp。winforms . 69 . 0 . 0 buildcefsharp . winforms . props " Condition = " Exists('..packagesCefSharp。winforms . 69 . 0 . 0 buildcefsharp . winforms . props ')"/& gt;& lt导入项目= "..packagesCefSharp。common . 69 . 0 . 0 buildcefsharp . common . props " Condition = " Exists('..packagesCefSharp。common . 69 . 0 . 0 buildcefsharp . common . props ')"/& gt;& lt导入项目= "..package scef . redist . x86 . 3 . 3497 . 1841 build cef . redist . x86 . props " Condition = " Exists('..package scef . redist . x86 . 3 . 3497 . 1841 build cef . redist . x86 . props ')"/& gt;& lt导入项目= "..package scef . redist . x 64 . 3 . 3497 . 1841 build cef . redist . x 64 . props " Condition = " Exists('..package scef . redist . x 64 . 3 . 3497 . 1841 build cef . redist . x 64 . props ')"/>;& lt导入项目= $(MsBuildExtensiSpath)$(MsBuildToolsVersion)微软。common . props " Condition = " Exists($(MsBuildExtensispath)$(MsBuildToolsVersion)微软。common . props ')"/>;& ltPropertyGroup>。& ltCefSharpAnyCpuSupport & gttrue <。/CefSharpaniCPUsupPort >
[2],添加
& ltruntime>。& ltassembly BInding xmlns = " urn:schemas-Microsoft-com:ASM . v1 " >& lt探查privatePath="x86"/>& lt/assemblyBinding>。& lt/runtime>。
[3]修改应用程序根目录下的Program.cs文件。
1[statthread]2 publicstativoidmain()3 { 4 varsettings = new cef settings();5设置。BrowserSubprocessPath = @头孢夏普。browsersubprocess . exe ";67Cef。初始化(设置,performDependencyCheck: false,browserProcessHandler:null);89 varbrowser = NewbrowserForm();10应用。运行(浏览器);11}
2)程序启动时CefSharp未初始化,导致ChromiumWebBrowser控件灰色显示。
[1],初始化CefSharp对象,否则什么都没有。
1[statthread]2 publicstativoidmain()3 { 4 varsettings = new cef settings();5设置。BrowserSubprocessPath = @头孢夏普。browsersubprocess . exe ";67Cef。初始化(设置,performDependencyCheck: false,browserProcessHandler:null);89 varbrowser = NewbrowserForm();10应用。运行(浏览器);11}
3)CefSharp.BrowserSubprocess.Core.dll和CefSharp.BrowserSubprocess.exe不在bin目录中。至于这两个资源文件的功能,了解浏览器多进程架构机制的原理很有意思。打开ChromiumWebBrowser控件显示的多个页面,加载多个CefSharp.BrowserSubprocess.exe进程。
三.摘要
这是一个小进步。以前没遇到的,现在进步了。如有必要,了解更多信息。不要忘记你的首创精神,继续努力。
世界上所有的国家都可以一样;爵禄,可辞;白刃,亦可舞;中庸之道不可能
版权声明:本文收集自网友或由网友提供。如有侵权,请告知版主或留言,微信官方账号立即删除。
1.《cefsharp C#使用CefSharp开源库开发Chrome 浏览器》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《cefsharp C#使用CefSharp开源库开发Chrome 浏览器》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1269816.html