生成 Windows 窗体 Blazor 应用 (WinForm+Bootstrap Blazor)

news/2024/11/18 12:33:39/文章来源:https://www.cnblogs.com/bluesuipian/p/18552205

官方文档有介绍如何用

WinForm+ Blazor   生成应用,  生成 Windows 窗体 Blazor 应用

 

先按照官方文档

启动 Visual Studio。 在“开始”窗口中,选择“创建新项目”: 创建WinForm项目

 

 起名为:WinFormsBlazor

框架我们选择:.NET 8.0 

创建完成项目后,使用 NuGet 包管理器安装 Microsoft.AspNetCore.Components.WebView.WindowsForms NuGet 包。(这里如果框架是选的8.0,我们就必须要选择8.*的版本,不然后面无法加载出来 BlazorWebView 控件,我这里选择的是8.0.100

 

在“解决方案资源管理器”中,右键单击项目的名称 WinFormsBlazor,然后选择“编辑项目文件”以打开项目文件 (WinFormsBlazor.csproj)。

 

在项目文件的顶部,将 SDK 更改为 Microsoft.NET.Sdk.Razor

<Project Sdk="Microsoft.NET.Sdk.Razor">

 

将更改保存到项目文件 (WinFormsBlazor.csproj)。

 

 

再在解决方案上右键,添加-》新建项目  添加Bootstrap Blazor项目  (怎么安装Bootstrap Blazor项目模板,请查看 官方文档:项目模板)。

 

创建完项目后 ,我们将BootStrap Blazor下的wwwroot整个文件夹复制到WinForm项目根目录,复制完后 WinForm项目目录结构如下。

 

在将具有以下标记的 index.html 文件添加到 wwwroot 文件夹。

wwwroot/index.html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>WinFormsBlazor</title><base href="/" /><link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" /><link href="css/app.css" rel="stylesheet" /><!-- 需引用 BootstrapBlazor.FontAwesome 包 !--><link href="_content/BootstrapBlazor.FontAwesome/css/font-awesome.min.css" rel="stylesheet"><link href="_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css" rel="stylesheet"><link href="WinFormsBlazor.styles.css" rel="stylesheet" />
</head><body><div id="app">Loading...</div><div id="blazor-error-ui" data-nosnippet>An unhandled error has occurred.<a href="" class="reload">Reload</a><a class="dismiss">🗙</a></div><!-- 增加代码 !--><script src="_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js"></script><script src="_framework/blazor.webview.js"></script></body></html>

 

BootstrapBlazor 组件添加到WinForm现有项目。

 

 版本也选择和框架对应的8.0版本,我们这里选择8.11.0

BootstrapBlazor.FontAwesome  也一并安装上

 回到WinForm 项目:在“解决方案资源管理器”中,双击 Form1.cs 文件以打开设计器: 

通过选择 Visual Studio 窗口左边缘的“工具箱”按钮,或选择“查看”>“工具箱”菜单命令来打开“工具箱”。

 在 Microsoft.AspNetCore.Components.WebView.WindowsForms 下找到 BlazorWebView 控件。 将 BlazorWebView 从“工具箱”拖到 Form1 设计器中。 请务必小心,勿将 WebView2 控件意外拖动到窗体中。

Visual Studio 将窗体设计器中的 BlazorWebView 控件显示为 WebView2 并自动命名控件 blazorWebView1

 

在 Form1 中,单击一下以选择 BlazorWebView (WebView2)。

在 BlazorWebView 的“属性”中,确认控件已命名为 blazorWebView1。 如果名称不是 blazorWebView1,则从“工具箱”中拖动了错误的控件。 删除 Form1 中的 WebView2 控件,然后将 BlazorWebView 控件拖动到窗体中。

在控件的属性中,将 BlazorWebView 的 Dock 值更改为“FILL”:

在 Form1 设计器中,右键单击 Form1,然后选择“查看代码”。

将 Microsoft.AspNetCore.Components.WebView.WindowsForms 和 Microsoft.Extensions.DependencyInjection 的命名空间添加到 Form1.cs 文件的顶部:

 

using Microsoft.AspNetCore.Components.WebView.WindowsForms;
using Microsoft.Extensions.DependencyInjection;

在 Form1 构造函数中的 InitializeComponent 方法调用后面,添加以下代码:

 

            var services = new ServiceCollection();// 增加 BootstrapBlazor 服务
            services.AddBootstrapBlazor();services.AddWindowsFormsBlazorWebView(); ;blazorWebView1.HostPage = "wwwroot\\index.html";blazorWebView1.Services = services.BuildServiceProvider();blazorWebView1.RootComponents.Add<Main>("#app");

可以看到Main这里标红。

复制

复制Blazor项目里的。_Imports.razor文件,Pages,Shared文件夹,复制完后,记得修改对应的命名空间。

复制Routes.razor 修改成Main.razor ,一定要认真改命名空间 一般飘红的地方都是命名空间问题,修改完后。启动项目

我们点击Table 发现没有数据

 Form1 修改成如下:

  var services = new ServiceCollection();// 增加 BootstrapBlazor 服务
  services.AddBootstrapBlazor();services.AddWindowsFormsBlazorWebView();// 增加 Table 数据服务操作类
  services.AddTableDemoDataService();blazorWebView1.HostPage = "wwwroot\\index.html";blazorWebView1.Services = services.BuildServiceProvider();blazorWebView1.RootComponents.Add<Main>("#app");

再次启动。 数据OK,正常。

 我们发现左下角有 An unhandled error has occurred. 显示。。。,很不美观。

 找到wwwroot/index.html

 这段DIV删除掉。

每次第一次启动加载会显示一个Loading...

将 index.html

 Loading... 删除掉 千万不要删除DIV 。不然启动会报错。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/836095.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cmu15545笔记-查询执行(Query Excution)

目录执行模型Iterator ModelMaterialization ModelVectoriazation Model对比数据访问方式Sequential ScanIndex ScanMulti-Index ScanHalloween Problem表达式求值 执行模型 执行模型(Processing Model)定义了数据库系统如何执行一个查询计划。 Iterator Model 基本思想:采用…

【大模型】模型安全

核心内容来自《大模型安全研究报告(2024年).pdf》 更多的安全内容见内部“语雀-大模型”-笔记真实性:训练数据能真实反映物理世界客观规律和人类社会实际运转情况的性质。 多样性:训练数据应覆盖尽可能多的样本,以确保大模型能对不同情况进行泛化的性质。 准确性:针对所规…

基于WPF开发视频播放器

在实际应用中,视频播放功能在很多软件中都会用到,将音频和视频集成到应用程序中不仅可以增强用户体验,还能起到事半功倍的效果。今天本文以一个简单的小例子,简述如何通过WPF中的MediaElement开发视频播放器,仅供学习分享使用,如有不足之处,还请指正!在实际应用中,视频…

wincc 7.5SP2下VBA编程学习练习15:批量删除变量

在前面练习的基础上学习批量删除变量。 新建下面的脚本: Sub DeleteTags()批量删除变量Dim hmigo As hmigoDim strTagName As StringDim i As IntegerSet hmigo = New hmigoFor i = 1 To 5 strTagName = "Real" & CStr(i) hmigo.DeleteTag strTagNameNext…

vue2-基础核心

vue简介 vue中文官网动态构建用户界面的渐进式 JavaScript 框架 vue的特点:遵循MVVM模式 采用组件化模式,提高代码复用率,让代码更好维护 声明式编码,无需直接操作DOM,提高开发效率,编码简洁、体积小,运行效率高 本身只关注UI,也可以引入其他三方库开发项目 使用虚拟DOM…

数据采集与融合技术实践作业四

数据采集与融合技术实践作业四 gitee链接:https://gitee.com/wei-yuxuan6/myproject/tree/master/作业4 作业① selenium爬取股票实验要求: 熟练掌握 Selenium 查找 HTML 元素、爬取 Ajax 网页数据、等待 HTML 元素等内容。 使用 Selenium 框架+ MySQL 数据库存储技术路线爬取…

creo装配体零件合并

一张图看懂creo5.0中装配体转零件creo中自带装配体转成零件的功能,无需另存为stp再以零件方式打开(可能出现烂面情况)1.先在装配体中创建一个空的零件;2.在装配体下按图中步骤进行操作,最终创建的空零件将变成装配体转成的零件

jenjins设置中文界面

参考 https://blog.csdn.net/weixin_45131680/article/details/142759961点击Manage Jenkins下滑到System Configuration 点击Manage Plugins点击“可选插件”,输入“Locale”点击Install without restart等待下载完成 显示“sucess”即为安装完成,然后点击管理jenkins下滑到…

又稳又快!基于ByteHouse ELT构建高性能离/在线一体化数仓

近期,ByteHouse与某数字娱乐公司达成合作,双方聚焦高性能离/在线一体化数仓展开合作。近期,ByteHouse与某数字娱乐公司达成合作,双方聚焦高性能离/在线一体化数仓展开合作。随着自身领域迅速发展的同时,该数字娱乐公司需要更稳定、易用的数据基础服务,但该方面遇到多种挑…

js设置浏览器cookie

https://blog.csdn.net/x550392236/article/details/77651579

猫映射(Arnold变换),猫脸变换介绍与基于例题脚本的爆破

前置信息 http://www.jiamisoft.com/blog/index.php/7249-erzhituxiangjiamisuanfaarnold.html https://mp.weixin.qq.com/s/IbkAlyAPvbgMeNgqfwisTg Arnold变换 Arnold变换是V.J.Arnold在遍历理论的研究中提出的一种变换,原意为catmapping,俗称猫脸变换。Arnold变换直观、简…

伯索云学堂视频课件课程下载工具,如何在电脑端下载伯索云学堂视频课程课件资料PDF,PPT到本地?

一. 安装伯索云课程下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/plaso_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用说明 1.学无止下载…