WPF 使用webView显示浏览器网页

devtools/2025/1/25 4:05:37/

在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.ppmy.cn/devtools/153302.html

相关文章

01学习nodejs的准备工作

01学习nodejs的准备工作 1.回顾与思考1.1为什么JavaScript可以在浏览器中被执行1.2为什么JavaScript可以操作DOM和BOM&#xff1f;1.3浏览器中的JavaScript运行环境1.4JavaScript 能否做后端开发 2.Nodejs简介2.1什么是nodejs2.2 Node.js中的 JavaScript 运行环境2.3 Node.js可…

grid 布局react组件可以循数据自定义渲染某个数据 ,或插入某些数据在某个索引下

import React from "react"; import "./App.css"; // 引入CSS文件interface GridDisplayProps {items: any[];rowNum?: number;renderItem?: (item: any, index: number) > React.ReactNode;customElement?: React.ReactNode;customIndex?: number;…

Coze,Dify,FastGPT,对比

在当今 AI 技术迅速发展的背景下&#xff0c;AI Agent 智能体成为了关键领域&#xff0c;Coze、Dify 和 FastGPT 作为其中的佼佼者&#xff0c;各有千秋。 平台介绍 - FastGPT&#xff1a;由环界云计算公司发起&#xff0c;是基于大语言模型&#xff08;LLM&#xff09;的开源…

基于web的音乐播放网站的设计与实现 毕业设计-附源码09626

目 录 摘要 1 绪论 1.1 研究背景 1.2系统开发目标、意义 1.3研究内容 2 相关技术介绍 2.1 MySQL数据库 2.2 Java编程语言 2.3 SpringBoot框架介绍 3 系统需求分析与设计 3.1 可行性分析 3.1.1 技术可行性分析 3.1.2 经济可行性分析 3.1.3 法律可行性分析 3.2 需…

笔试-字符串1

应用 第1个字符串&#xff1a;R 第2个字符串&#xff1a;BR 第3个字符串&#xff1a;RBBR 第4个字符串&#xff1a;BRRBRBBR 规律&#xff1a;第i个字符串 第i-1个字符串取反 第i-1个字符串&#xff0c;其中B、R互为相反字符。求第n个字符串的第k个字符为多少&#xff1f;n从…

TCP 详解

TCP 解析 考虑最简单的情况&#xff1a;两台主机之间的通信。这个时候只需要一条网线把两者连起来&#xff0c;规定好彼此的硬件接口&#xff0c;如都用USB、电压10v、频率2.4GHz等&#xff0c;这一层就是物理层&#xff0c;这些规定就是物理层协议 。 我们当然不满足于只有两…

ubuntu黑屏问题解决

重启Ubuntu后&#xff0c;系统自动进入tty1&#xff0c;无法进入桌面。想到前几天安装了一些主题之类的&#xff0c;然后今天才重启&#xff0c;可能是这些主题造成冲突或者问题了把。 这里直接重新安装ubuntu-desktop解决&#xff1a; 更新源&#xff1a; sudo apt-get upd…

代码编写java代做matlab程序代编Python接单c++代写web系统设计

1. Java代码编写 Java是一种广泛使用的编程语言&#xff0c;特别适用于企业级应用开发、Android应用开发以及大型系统的开发。 服务内容&#xff1a;根据客户需求&#xff0c;编写高质量的Java代码&#xff0c;实现特定的功能或业务逻辑。建议&#xff1a;确保对Java语言及其…