WPF中使用WebView2实现内嵌浏览器功能
前些天使用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%,按自己的需要设置缩放的比例。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2023-11-08 WPF应用添加快捷键
2017-11-08 图标模糊显示
2017-11-08 设置任务栏图标进度