欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在Windows桌面端软件(wpf、winform)中使用浏览网页的控件

程序员文章站 2022-06-07 13:11:14
...

       在实际使用过程中webbrowser各种问题都很棘手,比如获取DOM上的事件、对H5的支持等,所以一直在想着有没有合适的浏览器插件来替换。因为项目对安装包的大小有限制,所以cefsharp不被纳入方案内。后来发现微软除了好几个替代webbrowser的控件,这些控件都是UWP控件在winform或者wpf上的移植(可以在wpf\winform上使用的UWP控件集合)。安装这些控件,首先需要安装Windows Community Toolkit(安装方法)。

1.webview:在Windows 10, version 1803及以上版本使用。可以使用Edge引擎展示web内容,可以更好地展示H5内容。详细介绍

        现在有webview2体验版,使用 Microsoft Edge (Chromium) 来展示web内容,但是webview2目前还不支持win10以下的版本,而且不支持wpf(以后会支持)。

安装命令(nuget包):

winform:

Install-Package Microsoft.Toolkit.Forms.UI.Controls.WebView -Version 6.0.0

wpf:

Install-Package Microsoft.Toolkit.Wpf.UI.Controls.WebView -Version 6.0.0

2.WebViewCompatible:这个控件是一个兼容的webview,可以在win7上使用,在win10上使用Microsoft Edge渲染网页,在win7\win8上使用webbrowser(也就是使用IE内核)渲染网页。详细介绍

安装命令(nuget包)同上。

以上这两个控件都存在一定的限制,比如都只支持Visual Studio 2017、win10 17110及以上版本、NET Framework 4.6.2及以上版本,另外,如果要在高显示率(DPI)设备上显示,还需要进行另外的设置。

要查看使用WinRT功能的WPF或WinForms应用程序示例,可以在GitHub上签出Microsoft.Toolkit。该工具包正在使用控件来实现WebView,XAML,着墨和地理位置数据等功能。您也可以从Microsoft Store下载Windows Community Toolkit示例应用程序,以查看实际的控件,而不需要进入查看代码。

        另外微软于再次宣布了Windows 10 WinRT API Pack。新的API包能够为WinForms和WPF添加此前通常仅为WinRT(包括UWP)应用的诸多功能。其中包括地理位置、Windows AI、机器学习、面向网页内容的WebView功能以及诸多XAML控件。

       目前这个新API Pack以NuGet包的方式在nuget.org提供下载,支持Windows 10 Version 1803及更高版本使用。要将其添加到项目中,首先需要对其进行设置以支持Package Reference。然后,选择适用于您要定位的Windows 10版本的软件包,您将能够在WPF和WinForms应用程序中使用WinRT功能。

安装Windows 10 WinRT API Packs

 

参考:https://www.cnbeta.com/articles/tech/895087.htm?utm_source=taboola&utm_medium=exchange