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

WinForm程序嵌入Web网页

文章目录

  • 前言
  • 一、三方库或控件的选择测试
  • 二、Microsoft Edge WebView2安装、使用步骤
    • 1.安装
    • 2.使用


前言

由于此项目需要winform客户端嵌入web网页并于JAVA端交互数据,所以研究了一下嵌入web网页这部分,趟了一遍雷,这里做下记录。


一、三方库或控件的选择测试

1.首先是用了 WebBrowser 控件,发现可以打开部分页面,但是有很多页面打不开,性能相对较弱,支持感觉很拉跨,于是弃用了换其他的。

2.然后用了 Microsoft Edge WebView2 这个做demo测试,兼容性较好,我所需要的页面都可以打开,通过NeGet安装SDK,DLL尺寸较小,对项目安装包大小几乎没有影响。
最后我选择的这个,后续会讲一下安装使用步骤。

3.CefSharp也通过NeGet安装SDK,也可以打开我需要的所有页面,不足的是运行时环境+SDK包比较大,看网络上说此库兼容性、支持性要比 Microsoft Edge WebView2 强大,我没要做更多的测试,感兴趣的可以自己写个demo试试。

二、Microsoft Edge WebView2安装、使用步骤

1.安装

通过NeGet安装SDK,安装后VS2019的winform工具箱中是没有自动出现控件的,(也有幸运的,安装完就有了)
在这里插入图片描述
安装完后手动添加控件
点击工具箱空白处鼠标右击,点击选择项
在这里插入图片描述
点击浏览找到你上面NeGet安装的Microsoft Edge WebView2 的SDK文件夹,选择红框中的 dll 点击确定就添加上了
在这里插入图片描述
在这里插入图片描述
添加成功后如下图就可以使用了
在这里插入图片描述

2.使用

和平常控件一样拖动使用,设置上你的 url 就可以了
在这里插入图片描述

注意:
如果你的 url 通过代码设置,WebView2控件一定不要在设计器里拖动添加,必须去代码里添加WebView2实例化,否则会报错说你还没有初始化控件就是用。

简单代码:

using Microsoft.Web.WebView2.WinForms;

private WebView2 webView;//Web
public void WebViewInit()
{
   this.webView = new WebView2();
   // 设置 WebView2 的大小和位置
   webView.Location = new Point(50, 70); // 设置初始位置
   webView.Size = new Size(1400, 700);  // 设置初始大小

   // 将控件添加到窗体
   Controls.Add(webView);
   // 在窗体加载时导航到指定的网页
   string url = "http://192.168.1.60/?t=" + DateTime.Now.Ticks;
  // 初始化 WebView2 控件并加载网页
  InitializeWebView2AndLoadPage(url); 
}


private async void InitializeWebView2AndLoadPage(string url)
        {
            // 确保 CoreWebView2 实例已经准备好
            await webView.EnsureCoreWebView2Async();

            // 确保在 WebView2 控件初始化完成后加载网页
            webView.CoreWebView2.Navigate(url);
        }

http://www.kler.cn/news/323177.html

相关文章:

  • 【论文解读】ECCV2018细粒度分类:自监督机制NTS-Net模型引领新方向 (附论文地址)
  • 隐蔽通信中KL散度多码字联合与单码字分布
  • Spring Boot打造:小徐影院管理平台
  • SpringCloud Alibaba五大组件之——RocketMQ
  • 【Mysql】Mysql数据库基本操作-------DDL(下)
  • 前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
  • Kafka与RabbitMQ:深入理解两者之间的区别
  • Rce脚本自动化amp;批量
  • 目标检测系列(三)yolov2的全面讲解
  • ComfyUI 完全入门:基本功能详细介绍(附ComfyUI整合包)
  • 【开源免费】基于SpringBoot+Vue.JS体育馆管理系统(JAVA毕业设计)
  • Matlab基础练习
  • 一步步带你Linux内核编译与安装
  • AI编辑器CURSOR_CURSOR安装教程_使用AI进行编码的最佳方式。
  • 论文阅读《Co-clustering for Federated Recommender System》
  • Transformers 引擎,vLLM 引擎,Llama.cpp 引擎,SGLang 引擎,MLX 引擎
  • 每日OJ_牛客_OR59字符串中找出连续最长的数字串_双指针_C++_Java
  • 新茶饮卷出海,本土化成胜败关键
  • 牛肉高脂猫粮,福派斯猫粮新选择?乳鸽猫粮
  • zookeeper 服务搭建(单机)
  • 远程访问软路由
  • [半导体检测-8]:KLA Surfscan 系统设备组成
  • 深度学习----------------------语言模型
  • yolov10安装体验
  • ICM20948 DMP代码详解(48)
  • C# 字符串(String)的应用说明一
  • 机器学习入门
  • 单通道串口服务器
  • 【华为HCIP实战课程一】OSPF相关基础介绍及基础配置,网络工程师必修
  • 华为认证HCIA篇--网络通信基础