IE浏览器- 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版本一样,如果窗口为透明窗口样式则显示空白。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)