三.Winform使用Webview2加载本地HTML页面

本文介绍了如何在Winform中利用WebView2加载本地HTML页面,并演示了创建Demo2界面,添加WebView2控件,设置按钮事件以及加载HTML内容的过程,还涉及HTML文件的设置和文件路径的获取方法。
摘要由CSDN通过智能技术生成

往期目录

往期相关文章目录
专栏目录

创建Demo2界面

经过前面两小节 一.Winform使用Webview2(Edge浏览器核心) 创建demo(Demo1)实现回车导航到指定地址
二.Winform使用Webview2在Demo1中实现地址简单校验 我们已经学会了创建Form窗体。

  • 解决方案资源管理右键添加From窗体输入Demo2.cs
  • MainForm窗体上添加button,文字修改为和WebView2 中HTML 和C#之间通信
  • 添加button的点击事件,事件代码如下
 /// <summary>
 /// 按钮点击打开Demo2窗口
 /// </summary>
 private void btnDemo2_Click(object sender, EventArgs e)
 {
     Demo2 demo2 = new Demo2();
     demo2.Show();
 }

创建HTML页面

  • Demo2同级别目录添加HTML文件夹和demo2.html
    创建HTML文件夹
  • demo2.html添加如下内容
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Demo2TextHTMl</title>
</head>

<script></script>
<body>
   <h1>Hello ,Winform +<b>WebView2</b> </h1>
</body>
</html>
  • html创建好之后,一定一定要设置文件复制到输出目录
    文件属性窗口中,复制到输出目录如果较新则复制
    设置HTML较新则复制

设置之后我们通过运行可以看到生成目录中就有了demo2.html。使用生成目录中的demo2.html是为了便于我们后期通过打包安装等操作后程序可以加载正确的路径。

F5启动生成之后如下图
html生成到程序运行目录

生成到Debug目录还是Release目录取决于解决方案配置生成目录配置

在Demo2窗体上添加WebView2和按钮

如下
Demo2窗体
修改对应按钮(Name)

  • 刷新btnRefresh
  • 发送消息到HTML(btnSendToHtml)
  • 待会点击HTMl会被修改文字的按钮(butByHtmlChange) 同时设置 EnabledFalse
  • WebViwe2(mainView2)

加载HTML

为Demo2窗体添加Load事件


        /// <summary>
        /// 窗体加载程序
        /// </summary>

        private async void Demo2_Load(object sender, EventArgs e)
        {
            //获取可执行目录地址
            string exePath = Application.StartupPath;
            
            //拼接计算html页面路径
            string relativePath = "../../HTML/Demo2.html";
            string path = Path.GetFullPath(Path.Combine(exePath, relativePath));

            this.mainView2.Source = new Uri(@"file:///" + path);
        }

查看效果

加载本地页面HTML

往期相关文章目录
专栏目录

首先,需要在项目中添加 WebView2 和 pdf.js 的引用。 1. 在 WinForm 中添加 Webview2 控件: - 在 Visual Studio 中打开 WinForm 项目。 - 在 “工具箱” 中找到 “WebView2” 控件,将其拖到窗体上。 2. 使用 WebView2 控件加载 pdf.js: - 在窗体上添加一个按钮,命名为 “Load PDF”。 - 在按钮的 Click 事件中,使用 WebView2 控件加载 pdf.js: ```csharp private async void btnLoadPDF_Click(object sender, EventArgs e) { await webView21.EnsureCoreWebView2Async(); // 加载 pdf.js string html = $@" <html> <head> <script src=""{Application.StartupPath}\pdfjs-dist\build\pdf.js""></script> </head> <body> <div style=""position: absolute; top: 0; left: 0; right: 0; bottom: 0;""> <canvas id=""pdfCanvas""></canvas> </div> <script> // 加载 PDF 文件 pdfjsLib.getDocument('{Application.StartupPath}\sample.pdf').promise.then(function(pdf) { // 获取第一页并渲染 pdf.getPage(1).then(function(page) { var canvas = document.getElementById('pdfCanvas'); var context = canvas.getContext('2d'); var viewport = page.getViewport({ scale: 1.0 }); canvas.width = viewport.width; canvas.height = viewport.height; var renderContext = { canvasContext: context, viewport: viewport }; page.render(renderContext); }); }); </script> </body> </html>"; webView21.CoreWebView2.NavigateToString(html); } ``` 以上代码中,我们使用了 pdf.js 的 API 加载了一个名为 “sample.pdf” 的 PDF 文件,并将其渲染到一个名为 “pdfCanvas” 的 Canvas 元素中。 注意:在使用 pdf.js 渲染 PDF 文件时,需要使用 Canvas 元素来显示 PDF 内容。 3. 运行程序,点击 “Load PDF” 按钮,即可看到加载并渲染出了 PDF 文件的第一页。 以上就是使用 WebView2 控件和 pdf.js 来显示 PDF 文件的示例代码。需要注意的是,以上代码只是一个示例,实际使用时还需要对代码进行适当的修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值