WPF内嵌网页的两种方式
在wpf程序中,有时会内嵌网页。内嵌网页有两种方法,一种是使用wpf自带WebBrowser控件来调用IE内核,另一种是使用CefSharp包来调用chrom内核。
一、第一种使用自带WebBrowser:
1、直接在界面XAML文件中添加如下代码

1 <Grid>
2 <Grid.RowDefinitions>
3 <RowDefinition Height="auto"/>
4 <RowDefinition Height="*"/>
5 </Grid.RowDefinitions>
6 <Button Content="{DynamicResource Exit}" Style="{StaticResource ButtonStyle}" Command="{Binding ExitCommand}"></Button>
7 <WebBrowser Grid.Row="1" x:Name="MyIE" Source="https://www.baidu.com/"></WebBrowser>
8 </Grid>

效果如下:

二、第二种,使用CefSharp包调用chrom内核
1、在解决方案资源管理器-》引用-》右键-》管理NuGet包,下载下图所示的两个包

2、在引用文件中添加xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
3、在界面XAML文件中添加如下代码:

1 <Grid>
2 <Grid.RowDefinitions>
3 <RowDefinition Height="auto"/>
4 <RowDefinition Height="*"/>
5 </Grid.RowDefinitions>
6 <Button Content="{DynamicResource Exit}" Style="{StaticResource ButtonStyle}" Command="{Binding ExitCommand}"></Button>
7 <cefSharp:ChromiumWebBrowser Grid.Row="1" Name="MyChrom" Address="https://www.baidu.com/"/>
8 </Grid>

4、解决方案资源管理器-》项目-》属性-》生成,修改平台目标为x86或者x64(使用cefSharp,必须指定目标平台,不能为AnyCPU)

效果如下:

三、常见问题及解决方法
1、与.net版本不匹配

两种解决方法:
(1)下载一个低版本的NuGet包
(2)解决方案资源管理器-》项目-》属性-》应用程序,目标框架改为4.5.2

2、出现错误:
问题签名:
问题事件名称: CLR20r3
问题签名 01: XXX.exe
问题签名 02: 1.0.0.0
问题签名 03: f62cc746
问题签名 04: CefSharp.Wpf
问题签名 05: 49.0.1.0
问题签名 06: 574e0907
问题签名 07: 81
问题签名 08: 0
问题签名 09: System.IO.FileNotFoundException
OS 版本: 6.1.7601.2.1.0.256.1
区域设置 ID: 2052
其他信息 1: 3b8f
其他信息 2: 3b8f40338d3d7600dda7280b94b47c80
其他信息 3: a55c
其他信息 4: a55ca54e15598fd09281b24e67624ba3
联机阅读隐私声明:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0804
如果无法获取联机隐私声明,请脱机阅读我们的隐私声明:
C:\Windows\system32\zh-CN\erofflps.txt
这个错误是作者将自己电脑程序拷贝到别人电脑时出现的错误,百度了很多,基本都是说.net版本不一致错误,安装了很多.net框架版本,并没有什么用。最后发现是由于缺少MicroSoft
Visual C++ Redistributable,下载各个版本的包安装即可。
WPF内嵌网页的两种方式的更多相关文章
- urllib-访问网页的两种方式:GET与POST
学习自:https://www.jianshu.com/p/4c3e228940c8 使用参数.关键字访问服务器 访问网络的两种方法: 1.GET 利用参数给服务器传递信息 参数data为dict类型 ...
- WPF TextBlock 文本换行的两种方式
第一种: <TextBlock> This is line 1.<LineBreak/> This is line 2. </TextBlock> 第二种 < ...
- WPF中打开网页的两种方法
1.浏览器打开 Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "http://www. ...
- WPF应用程序内嵌网页
原文:WPF应用程序内嵌网页 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/shaynerain/article/details/78160984 WPF ...
- 【前台 ajax】web项目前台传递数组给后台 两种方式
项目使用maven springMVC 有需求 将前台的数组 在ajax中 送给后台 方式1: 前台代码:[注意:ajax中的属性---traditional:true, ] 如果Post ...
- 关于Unity程序在IOS和Android上显示内嵌网页的方式
近期因为有须要在Unity程序执行在ios或android手机上显示内嵌网页.所以遍从网上搜集了一下相关的资料.整理例如以下: UnityWebCore 从搜索中先看到了这个.下载下来了以后发现这个的 ...
- Oracle并行更新的两种方式(merge/update内联视图)
对于Oracle的两表联合更新的场景(有A.B两表,以A.id=B.id关联,根据B表中的记录更新A表中的相应字段),一般有update内联视图和merge两种方式,下面举例介绍: 创建用例表: ...
- MarkDown技巧:两种方式实现页内跳转
MarkDown技巧:两种方式实现页内跳转 本人邮箱:JohnTsai.Work@gmail.com,欢迎交流讨论. 欢迎转载,转载请注明网址:http://www.cnblogs.com/JohnT ...
- 通过调用C语言的库函数与在C代码中使用内联汇编两种方式来使用同一个系统调用来分析系统调用的工作机制
通过调用C语言的库函数与在C代码中使用内联汇编两种方式来使用同一个系统调用来分析系统调用的工作机制 前言说明 本篇为网易云课堂Linux内核分析课程的第四周作业,我将通过调用C语言的库函数与在C代码中 ...
随机推荐
- 49、Spark Streaming基本工作原理
一.大数据实时计算介绍 1.概述 Spark Streaming,其实就是一种Spark提供的,对于大数据,进行实时计算的一种框架.它的底层,其实,也是基于我们之前讲解的Spark Core的. 基本 ...
- GoCN每日新闻(2019-10-01)
GoCN每日新闻(2019-10-01) GoCN每日新闻(2019-10-01) 1. 我依然爱着 GOPATH https://divan.dev/posts/gopath/ 2. Go 代码注释 ...
- Connection to newtaotao failed. [08001] Could not create connection to database
jdbc.url=jdbc:mysql://localhost:3306/newtaotao?serverTimezone=UTC&characterEncoding=utf-8 数据库是5. ...
- css文字两行或者几行显示省略号
做这个省略的问题,突然发现显示省略号是有中英文区分的 我做两行的时候用的是以下代码,在是中文的情况下是么得问题,到了英文下发现不起作用了 width: 250px; overflow: hidden; ...
- spring @Transactional 事务注解的坑
1. 在需要事务管理的地方加@Transactional 注解.@Transactional 注解可以被应用于接口定义和接口方法.类定义和类的 public 方法上. 2. @Transactiona ...
- 使用良好的自定义X264编码,取得极佳质量!《转》
原帖地址:http://www.xspliter.com/forum.php?mod=viewthread&tid=447 一般直播时使用A设定即可.你尝试设置并找出你最满意的设定 A为最需最 ...
- npm版本管理 命令
npm采用了semver规范作为依赖版本管理方案.semver 约定一个包的版本号必须包含3个数字 MAJOR.MINOR.PATCH 意思是 主版本号.小版本号.修订版本号 MAJOR 对应大的版本 ...
- Authenticator App 两步验证会不会造成亚马逊账号关联?
今天听人说,因为用Authenticator App做亚马逊两步验证造成了帐号关联…… 我给大家解释一下Authenticator的实现原理,作为计算机专业科班出身的我,此次从各方面了解并经过自己亲测 ...
- 转载:Base64编解码介绍
https://www.liaoxuefeng.com/wiki/897692888725344/949441536192576 Base64是一种用64个字符来表示任意二进制数据的方法. 用记事本打 ...
- JS高级:面向对象解析
1 实例属性/方法 都是绑定在使用构造函数创建出来的对象p上; 最终使用的时候也是使用对象p来进行访问; function Person(name, age, doFunc) { this.name ...