客戶端瀏覽器- UWP兼容版本WebView

原文: 客戶端瀏覽器- UWP兼容版本WebView

WebView簡介

在win10以前,瀏覽器控件有WPF版本webBrowser、Winform版本WebBrowser,瀏覽器內核爲IE。html

win10以後,微軟再也不維護原有的WebBrowser,轉而推出UWP版本的WebView,能夠適配於WPF、Winform程序。web

WebView使用

限制條件:windows

  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 spa

還有值得關注的是WebView在高DPI下顯示比例不正常,官網文檔上有解決方案.net

 

同時,WebView若是在後臺初始化沒法顯示網頁(若是放Xaml中,正常),調整窗口大小後則正常顯示,目測可能由於寬高未自適應(待查找緣由)。orm

WebView兼容

針對WebView以上提到的限制條件,只能在Win10中顯示。那麼是win7/win8環境下瀏覽器呢?htm

值得點讚的是,官網提供了一個兼容控件WebViewCompatible,不用咱們去作兼容。blog

  • 在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版本同樣,若是窗口爲透明窗口樣式則顯示空白。

相關文章
相關標籤/搜索