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版本一樣,如果窗口為透明窗口樣式則顯示空白。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM