当前位置: 首页 > article >正文

WPF 使用webView显示浏览器网页

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

使用 WebBrowser 控件

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

  1. 在XAML中添加 WebBrowser 控件:

    <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:

    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 控件:

    <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:

    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技术交互的情况下。


http://www.kler.cn/a/512466.html

相关文章:

  • AI 新动态:技术突破与应用拓展
  • BottomNavigationBar组件的用法
  • 在k8s中部署一个可外部访问的Redis Sentinel
  • 【大模型】ChatGPT 高效处理图片技巧使用详解
  • 人工智能领域单词:英文解释
  • MySQL 窗口函数
  • Edu邮箱免费获取Photoshop等设计软件
  • 第七篇:vue3 计算属性:computed
  • Golang Gin系列-3:Gin Framework的项目结构
  • 华宇TAS应用中间件与新支点多款软件及操作系统完成兼容互认证
  • BERT和Transformer模型有什么区别
  • knife4j 文档解析 application/x-www-form-urlencoded表单解析成post json
  • 大模型之三十三- 开源Melo 语音合成
  • 【2025】拥抱未来 砥砺前行
  • 【北京迅为】iTOP-4412全能版使用手册-第八十七章 安装Android Studio
  • 如何通过云计算优化网站性能?
  • Redis 7.0 I/O多线程模型:小红书高并发性能的幕后推手
  • 2024精编面试算法题类型之暴力枚举
  • 行人识别检测数据集,yolo格式,PASICAL VOC XML,COCO JSON,darknet等格式的标注都支持,准确识别率可达99.5%
  • RabbitMQ 高级特性
  • 3分钟看懂Android Studio下拉框组件
  • PyTorch使用教程(13)-一文搞定模型的可视化和训练过程监控
  • adb常用指令(完整版)
  • 记一次常规的网络安全渗透测试
  • Spring boot 集成分布式定时任务
  • WPS生成文件清单,超链接到工作簿文件-Excel易用宝