客户端浏览器- UWP兼容版本WebView
WebView简介
在win10之前,浏览器控件有WPF版本webBrowser、Winform版本WebBrowser,浏览器内核为IE。
win10之后,微软不再维护原有的WebBrowser,转而推出UWP版本的WebView,可以适配于WPF、Winform程序。
WebView使用
限制条件:
- win10 - WebView的内核是Edge,所以只能在win10电脑上使用。在win7环境下,无法显示。
- .NET 版本 4.6.2及以上 - 在引用WebView控件时,要求当前项目的.net框架至少是4.6.2
在WPF中引用WebView:
在NuGet下搜索Microsoft.Toolkit.Forms.UI.Controls.WebView ,点击安装后,直接使用WebView控件就行了。
WebView当前已知缺陷:官网列出的缺陷列表Known Issues of the WebView
还有值得关注的是WebView在高DPI下显示比例不正常,官网文档上有解决方案
同时,WebView如果在后台初始化无法显示网页(如果放Xaml中,正常),调整窗口大小后则正常显示,目测可能因为宽高未自适应(待查找原因)。
WebView兼容
针对WebView以上提到的限制条件,只能在Win10中显示。那么是win7/win8环境下浏览器呢?
值得点赞的是,官网提供了一个兼容控件WebViewCompatible,不用我们去做兼容。
- 在win10下,基于Edge呈现
- 在win10以下版本,则使用IE
所以。。。。在win7/win8环境下原有WPF的坑依旧存在,比如透明窗口样式下无法显示问题
当然,如果你的程序主要是在Win10上运行,然后只是兼容win7/win8,WebViewCompatible绝对适合你。
各版本浏览器的Demo效果
点击下载Demo,查看在不同windows版本下的效果。
浏览器版本&Windows版本结果对比如下:
winform版本&WPF版本 - WebBrowser
- win10 & win7
- 默认样式 - 显示正常
- 透明窗口样式 - 显示空白(不可见,但可点击隐藏内容)
原因:winform版本&WPF版本,已经指定内核为IE浏览器,而IE浏览器内核在透明窗口样式下无法正常显示。
UWP版本-WebView
- win10下
- 默认样式 & 透明样式 - 显示正常
- win7下 程序崩溃
原因:UWP版本,除了要求.net4.6.2,还要求win10环境。而win10下,WebView的内核为Edge,所以显示正常
UWP兼容版本-WebViewCompatible
- win10下
- 默认样式 & 透明样式- 显示正常
- win7下
- 默认样式 - 显示正常
- 透明窗口样式 - 显示空白
原因:UWP兼容版本,要求.net4.6.2。win10下,WebViewCompatible的内核为Edge,所以显示正常;win7下,WebViewCompatible内核为IE浏览器,所以与WPF版本一样,如果窗口为透明窗口样式则显示空白。
客户端浏览器- UWP兼容版本WebView的更多相关文章
- js获取浏览器信息及版本(兼容IE)
获取浏览器信息方法有很多种,但是要是兼容ie旧版本就有点麻烦了,因为很多方法在旧版本ie是不支持的,所以ie我做了单独处理,但是目前还有小问题,就是想显示QQ浏览器,搜狗浏览器..这样的,这样还实现不 ...
- 我们检测到您的浏览器不兼容传输层安全协议 (TLS) 1.1 或更高版本,此协议在 Internet 上用于确保您通信的安全性。
早上使用.Net WebClient类采集亚马逊数据,返回http 400 Bad Request错误,内容里面有“我们检测到您的浏览器不兼容传输层安全协议 (TLS) 1.1 或更高版本,此协议在 ...
- Android 各个版本WebView
转载请注明出处 http://blog.csdn.net/typename/ powered by miechal zhao : miechalzhao@gmail.com 前言: 根据Googl ...
- WPF 客户端浏览器 添加Loading加载进度
在windows开发界面时,使用浏览器来请求和显示网页内容,是比较常见的. 但是在请求网页内容时,因网速或者前端功能复杂加载较慢,亦或者加载时遇到各种问题,如空白/黑屏/加载不完整/证书问题等. 因此 ...
- js获取浏览器类型和版本信息
bro () { let broName = 'Runing' let strStart = 0 let strStop = 0 let temp = '' let userAgent = windo ...
- 前端开发【第6篇:JavaScript客户端(浏览器)】
Web浏览器中的JavaScript 客户端JavaScript时间线 1.Web浏览器创建Document对象,并且开始解析web页面,解析HTML元素和它门的文本内容后添加Element对象和Te ...
- ios客户端浏览器样式加载失效问题
最近线上测试中出现一个奇怪的问题,ios客户端浏览器样式加载失效. 从表象来看,同样的css,安卓手机上可以正常展示,但是到ios手机上首次进入页面就不能正常显示 这时候,我们首先会考虑是不是ios设 ...
- asp.net获取客户端浏览器及主机信息
在线预览效果:http://tool.hovertree.com/info/client/ 其中aspx页面的控件代码: <asp:ListBox runat="server" ...
- 强制浏览器使用兼容模式,Web.config,httpProtocol
对于一些政府类的网站,很多支持IE6~8,而不支持使用更高版本浏览器浏览.虽然有些浏览器会自动使用兼容模式,或有些人会手动调整浏览器的兼容模式,但不是每一个人.每一款浏览器都可以做到用兼容模式.所以, ...
随机推荐
- iscc2018(一只猫的心思)
由于这一个杂项类没有更新,所以今天特地来写一下博文.希望能够帮助到你们!!!! 其他关于杂项类的解析,可以查看(https://blog.csdn.net/qq_41187256/article/de ...
- iPhone6 AirDrop找不到我的mac解决方法!注销mac和iPhone的icloud账号
注销mac和iPhone的icloud账号,icloud 会自动同步个人热点,个人热点开启状态,mac 和 iPhone 无法看到对方!
- python中os.path.dirname(__file__) 命令行 参数没有绝对路径导致数据库找不到
(1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如: python d:/python ...
- Random在高并发下的缺陷以及JUC对其的优化
Random可以说是每个开发都知道,而且都用的很6的类,如果你说,你没有用过Random,也不知道Random是什么鬼,那么你也不会来到这个技术类型的社区,也看不到我的博客了.但并不是每个人都知道Ra ...
- 从一亿个ip找出出现次数最多的IP(分治法)
/* 1,hash散列 2,找到每个块出现次数最多的(默认出现均匀)—–>可以用字典树 3,在每个块出现最多的数据中挑选出最大的为结果 */ 问题一: 怎么在海量数据中找出重复次数最多的一个 算 ...
- 流程控制之if判断
目录 语法(掌握) if if...else if...elif...else 练习(掌握) 练习1:成绩评判 练习2:模拟登录注册 if的嵌套(掌握) 语法(掌握) if判断是干什么的呢?if判断其 ...
- 微服务架构 - 离线部署k8s平台并部署测试实例
一般在公司部署或者真实环境部署k8s平台,很有可能是内网环境,也即意味着是无法连接互联网的环境,这时就需要离线部署k8s平台.在此整理离线部署k8s的步骤,分享给大家,有什么不足之处,欢迎指正. 1. ...
- 利用ATiny85制作BadUSB
0x00.准备: ATiny85的板子 淘宝十元包邮.有两款,两款都可以,建议选择左边的,这样可以直接插入USB口,第二款也可以,不过需要一根Micro的数据线(旧款安卓手机使用的线). 电脑安装驱动 ...
- 搭建基于Docker社区版的Kubernetes本地集群
Kubernetes的本地集群搭建是一件颇费苦心的活,网上有各种参考资源,由于版本和容器的不断发展,搭建的方式也是各不相同,这里基于Docker CE的18.09.0版本,在Mac OS.Win10下 ...
- MySQL5.7下面,误操作导致的drop table db1.tb1; 的恢复方法:
MySQL5.7下面,误操作导致的drop table db1.tb1; 的恢复方法: 0.停业务数据写入.[iptables封禁] 1.从备份服务器上拉取最新的一个全备文件,恢复到一个临时的服务器上 ...