WPF 使用webView显示浏览器网页

在WPF中显示一个可以操作的浏览器界面,你可以使用WebBrowser控件或WebView2控件。WebBrowser控件是基于IE内核的,而WebView2是基于Chromium内核的,推荐使用WebView2,因为它更现代且支持最新的Web标准。

使用 WebBrowser 控件

WebBrowser 控件是WPF内置的控件,使用起来比较简单,但功能有限。

  1. 在XAML中添加 WebBrowser 控件:

    xml 复制代码
    <Window x:Class="WpfBrowserApp.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="WPF Browser" Height="450" Width="800">
        <Grid>
            <WebBrowser Name="webBrowser" />
        </Grid>
    </Window>
  2. 在代码中导航到指定的URL:

    csharp 复制代码
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            webBrowser.Navigate("https://www.example.com");
        }
    }

使用 WebView2 控件

WebView2 是基于Chromium的现代浏览器控件,功能更强大,支持最新的Web标准。

  1. 安装 WebView2 NuGet 包:

    在Visual Studio中,右键点击项目 -> 管理NuGet包 -> 搜索 Microsoft.Web.WebView2 并安装。

  2. 在XAML中添加 WebView2 控件:

    xml 复制代码
    <Window x:Class="WpfBrowserApp.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
            Title="WPF Browser" Height="450" Width="800">
        <Grid>
            <wv2:WebView2 Name="webView" />
        </Grid>
    </Window>
  3. 在代码中初始化并导航到指定的URL:

    csharp 复制代码
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            InitializeAsync();
        }
    
        private async void InitializeAsync()
        {
            await webView.EnsureCoreWebView2Async(null);
            webView.CoreWebView2.Navigate("https://www.example.com");
        }
    }

总结

  • 如果你需要简单的浏览器功能,可以使用 WebBrowser 控件。
  • 如果你需要更现代、功能更强大的浏览器,推荐使用 WebView2 控件。

WebView2 是未来的趋势,尤其是在需要与现代Web技术交互的情况下。

相关推荐
lindexi43 分钟前
WPF 引用 ASP.NET Core 的 AOT 版本
wpf·asp.netcore
我好喜欢你~17 小时前
WPF---数据模版
wpf
hqwest2 天前
C#WPF实战出真汁07--【系统设置】--菜品类型设置
开发语言·c#·wpf·grid设计·stackpanel布局
hqwest2 天前
C#WPF实战出真汁08--【消费开单】--餐桌面板展示
c#·wpf·ui设计·wpf界面设计
orangapple2 天前
WPF 打印报告图片大小的自适应(含完整示例与详解)
c#·wpf
三千道应用题3 天前
WPF&C#超市管理系统(6)订单详情、顾客注册、商品销售排行查询和库存提示、LiveChat报表
开发语言·c#·wpf
✎ ﹏梦醒͜ღ҉繁华落℘4 天前
开发WPF项目时遇到的问题总结
wpf
hqwest5 天前
C#WPF实战出真汁06--【系统设置】--餐桌类型设置
c#·.net·wpf·布局·分页·命令·viewmodel
Vae_Mars5 天前
WPF中使用InputBindings进行快捷键绑定
wpf
hqwest5 天前
C#WPF实战出真汁05--左侧导航
开发语言·c#·wpf·主界面·窗体设计·视图viewmodel