• IE浏览器- UWP兼容版本WebView


    WebView简介

    在win10之前,浏览器控件有WPF版本webBrowser、Winform版本WebBrowser,浏览器内核为IE。

    win10之后,微软不再维护原有的WebBrowser,转而推出UWP版本的WebView,可以适配于WPF、Winform程序。

    WebView使用

    限制条件:

    1. win10 - WebView的内核是Edge,所以只能在win10电脑上使用。在win7环境下,无法显示。
    2. .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版本一样,如果窗口为透明窗口样式则显示空白。

  • 相关阅读:
    Git快速入门
    Django(一)入门基础——hello world
    JS获取浏览器地址栏的多参数值的任意值
    EasyUI 中的双击某行 并赋值给input事件
    T-SQL 创建触发器 禁止插入空值
    从xxxx检测到有潜在危险的 Request.Form 提示黄页
    Linux基本常用命令|ubuntu获取root权限
    MySQL操作数据库值mysql事务
    ASP.NET免费发送邮件|
    经典JS 判断上传文件大小和JS即时同步电脑时间
  • 原文地址:https://www.cnblogs.com/kybs0/p/10408114.html
Copyright © 2020-2023  润新知