前些天使用CefSharp来实现内嵌浏览器的功能。本身用起来还不错,我的测试工程是.NET 8+WPF。
不知道是不是依赖库的问题,经常会遇到一些有奇奇怪怪的问题,包括控件初始化失败。
后面有网友推荐微软出的WebView2,试用了一下,确实挺不错。
安装
Install-Package Microsoft.Web.WebView2
示例代码
前台代码:
<Window x:Class="WpfApp.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Grid><wv2:WebView2 x:Name="webView" Source="https://www.microsoft.com"/></Grid>
</Window>
后台代码:
using Microsoft.Web.WebView2.Core;
using Microsoft.Web.WebView2.Wpf;
using System.Windows;namespace WpfApp
{public partial class MainWindow : Window{public MainWindow(){InitializeComponent();InitializeAsync();}private async void InitializeAsync(){await webView.EnsureCoreWebView2Async(null);}}
}
相当于开始的时候,必须先调用 EnsureCoreWebView2Async
方法来异步初始化 WebView2 控件的核心部分。
加载HTML文本
webView.NavigateToString(htmlText);
设置缩放比例
webView.ZoomFactor = 1.0;
1.0是100%,按自己的需要设置缩放的比例。