客户端浏览器- 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,而不支持使用更高版本浏览器浏览.虽然有些浏览器会自动使用兼容模式,或有些人会手动调整浏览器的兼容模式,但不是每一个人.每一款浏览器都可以做到用兼容模式.所以, ...
随机推荐
- mysql中利用group by过滤删除重复行
DELETEFROM peopleWHERE peopleId IN (SELECT peopleId FROM people GROUP BY peopleId HAVING count(peopl ...
- 记一次springboot项目,maven引发的悲剧(Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletCont)
maven下载大的项目的时候,jar包下载出错是常见的, 但是这种情况经常能看到,如java.lang.ClassNotFoundException这样的提示, 所以一直以来也觉得maven下载jar ...
- 一步一步理解 python web 框架,才不会从入门到放弃 -- 简单登录页面
上一节,我们基本了解了 Django 的一些配置,这一节,我们将通过一个简单的登录页面,进一步学习 Django 的使用. 新建项目 首先,新建一个 Django 项目,记得别弄错了哦. settin ...
- ie兼容问题记录
工作中遇到的ie网站兼容性问题 头疼.......... 以下为从网上搜索学习的整理兼容性方法 用于自己记录 #兼容问题 ##css hack: https://blog.csdn.net/fres ...
- github下载和上传项目
git下载和上传项目 下载: git clone +地址 上传: 1.git init 在当前项目的目录中生成本地的git管理(多一个.git文件夹,为隐藏文件) 2.git add .(注意最后面有 ...
- asp.net core系列 50 Identity 授权(中)
1.5 基于策略的授权 在上篇中,已经讲到了授权访问(authorization)的四种方式.其中Razor Pages授权约定和简单授权二种方式更像是身份认证(authentication) ,因为 ...
- React + TypeScript:元素引用的传递
React 中需要操作元素时,可通过 findDOMNode() 或通过 createRef() 创建对元素的引用来实现.前者官方不推荐,所以这里讨论后者及其与 TypeScript 结合时如何工作. ...
- Java进阶篇设计模式之九----- 解释器模式和迭代器模式
前言 在上一篇中我们学习了行为型模式的责任链模式(Chain of Responsibility Pattern)和命令模式(Command Pattern).本篇则来学习下行为型模式的两个模式, 解 ...
- 用Docker解决坑爹的环境搭建系列——PHP+Apache2
sudo docker pull eboraas/apache-php sudo docker run -p 9991:80 --name php -v /data/docker/php/www:/v ...
- MobileForm控件的使用方式-用.NET(C#)开发APP的学习日志
今天继续Smobiler开发APP的学习日志,这次是做一个title.toolbar.侧边栏三种效果 样式一 一. Toolbar 1. 目标样式 我们要实现上图中的效果 ...