在winform中使用blazor hybrid构建页面

这篇具有很好参考价值的文章主要介绍了在winform中使用blazor hybrid构建页面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、Blazor Hybrid简介

Blazor Hybrid 使开发人员能够将桌面和移动本机客户端框架与 .NET 和 Blazor 结合使用。在 Blazor Hybrid 应用中,Razor 组件在设备上是本机运行的。 这些组件通过本地互操作通道呈现到嵌入式 Web 视图控件。 组件不在浏览器中运行,并且不涉及 WebAssembly。 Razor 组件可快速加载和执行代码,这些组件可通过 .NET 平台完全访问设备的本机功能。

2、效果

3、步骤

如果对在winform中使用blazor hybrid感兴趣的话,可以继续往下阅读,看看具体的实现步骤是怎样的。

正常创建winform

创建一个winform,我这里使用的是.NET 8,如下所示:

安装NuGet包

安装Microsoft.AspNetCore.Components.WebView.WindowsForms,如下所示:

更改csproj文件

在“解决方案资源管理器”中,右键单击项目的名称 ,然后选择“编辑项目文件”,如下所示:

在项目文件的顶部,将 SDK 更改为 Microsoft.NET.Sdk.Razor,如下所示:

点击保存,保存之后,你会发现你的项目变成了这样,如下所示:

添加_Imports.razor 文件

_Imports.razor 文件添加到项目的根目录。如下所示:

_Imports.razor中的内容为:

@using Microsoft.AspNetCore.Components.Web

如下所示:

添加index.html 文件

先将 wwwroot 文件夹添加到该项目。

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

<!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/app.css" rel="stylesheet" />
   <link href="WinFormsBlazor.styles.css" rel="stylesheet" />
</head>

<body>

   <div id="app">Loading...</div>

   <div id="blazor-error-ui">
      An unhandled error has occurred.
       <a href="" class="reload">Reload</a>
       <a class="dismiss">🗙</a>
   </div>

   <script src="_framework/blazor.webview.js"></script>

</body>

</html>

wwwroot 文件夹中,创建一个 css 文件夹来保存样式表。

将具有以下内容的 app.css 样式表添加到 wwwroot/css 文件夹中。

wwwroot/css/app.css

html, body {
   font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

h1:focus {
   outline: none;
}

a, .btn-link {
   color: #0071c1;
}

.btn-primary {
   color: #fff;
   background-color: #1b6ec2;
   border-color: #1861ac;
}

.valid.modified:not([type=checkbox]) {
   outline: 1px solid #26b050;
}

.invalid {
   outline: 1px solid red;
}

.validation-message {
   color: red;
}

#blazor-error-ui {
   background: lightyellow;
   bottom: 0;
   box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
   display: none;
   left: 0;
   padding: 0.6rem 1.25rem 0.7rem 1.25rem;
   position: fixed;
   width: 100%;
   z-index: 1000;
}

   #blazor-error-ui .dismiss {
       cursor: pointer;
       position: absolute;
       right: 0.75rem;
       top: 0.5rem;
  }

如下所示:

添加Count组件

将以下 Counter 组件添加到项目的根目录,这是 Blazor 项目模板中的默认 Counter 组件。

<h1>Counter</h1>

<p>Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
   private int currentCount = 0;

   private void IncrementCount()
  {
       currentCount++;
  }
}

如下所示:

添加BlazorWebView 控件

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

打开工具箱添加BlazorWebView控件:

BlazorWebView控件最大化:

修改Form1.cs

原本是这样的:

namespace WinFormBlazorHybridDemo
{
   public partial class Form1 : Form
  {
       public Form1()
      {
           InitializeComponent();
      }

       private void Form1_Load(object sender, EventArgs e)
      {

      }
  }
}

修改后是这样的:

using Microsoft.AspNetCore.Components.WebView.WindowsForms;
using Microsoft.Extensions.DependencyInjection;
namespace WinFormBlazorHybridDemo
{
   public partial class Form1 : Form
  {
       public Form1()
      {
           InitializeComponent();
           var services = new ServiceCollection();
           services.AddWindowsFormsBlazorWebView();
           blazorWebView1.HostPage = "wwwroot\\index.html";
           blazorWebView1.Services = services.BuildServiceProvider();
           blazorWebView1.RootComponents.Add<Counter>("#app");
      }

       private void Form1_Load(object sender, EventArgs e)
      {

      }
  }
}

在顶部添加了:

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

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

 var services = new ServiceCollection();
services.AddWindowsFormsBlazorWebView();
blazorWebView1.HostPage = "wwwroot\\index.html";
blazorWebView1.Services = services.BuildServiceProvider();
blazorWebView1.RootComponents.Add<Counter>("#app");

运行效果

点击运行,界面如下所示:

结语

后面就可以使用blazor的ui框架比如Ant Design Blazor等构建好看的页面了。文章来源地址https://www.toymoban.com/news/detail-749666.html

到了这里,关于在winform中使用blazor hybrid构建页面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • bh002- Blazor hybrid / Maui 保存设置快速教程

    1. 建立工程 bh002_ORM 源码 2. 添加 nuget 包 3. 添加命名空间引用 _Imports.razor @using BootstrapBlazor.Components 4. 添加服务 MauiProgram.cs 在 return builder.Build(); 之前加入这句 5. 添加代码后置文件 Pages/Index.razor.cs Index.razor.cs 6. 添加 UI Index.razor 7. 执行效果 8. 添加清除按钮 Index.razor Index.razor.c

    2024年02月11日
    浏览(25)
  • Blazor HyBrid在香橙派(Ubuntu Arm)运行的效果

    准备香橙派一块!当前教程使用的是香橙派5 4G开发板 准备.NET环境 安装.NET Core依赖 下载.NET 7 SDK 创建dotnet文件夹并解压 创建软连接 查看版本 如果需要使用 https 请使用 一下是一个 Masa Blazor 可以用于在 Arm 设备运行的程序 项目开源地址: 239573049/MasaLinuxDesktop (github.com) 然后在

    2024年02月06日
    浏览(128)
  • 四.Winform使用Webview2加载本地HTML页面并互相通信

    往期相关文章目录 专栏目录 实现刷新按钮 点击 C# winform 按钮可以调用 C# winform 代码显示到html上 点击 HTML 按钮可以调用 C# winform 代码更改html按钮字体 C# - html html-C# 确保mainView2的CoreWebView2异步初始化完成 在webview2的CoreWebView初始化之后设置属性 在coreWebview2完成时添加 WebMess

    2024年01月24日
    浏览(35)
  • [项目实战] 使用Idea构建单页面Vue3项目(不使用node、npm)

    某天张三对小花说,我需要在一台新电脑上实现一个前端的漂亮页面:比如京东手机首页(m.jd.com)。 小花这时吭哧吭哧的去新电脑上安装nodejs、npm,然后在本地使用npm构建vue3项目,在项目里下载安装element-plus、axios。下一步进入编码阶段,写好的文件最后打包dist文件,放在

    2024年02月16日
    浏览(39)
  • 在Visual Studio的Web页面调用WinForm窗体方法

            在使用visual studio创建项目时,网站主体使用Web Application创建,部分功能使用WinForm窗体搭建。当时认为都是基于vs平台开发的项目,项目之间相互引用会很容易,但是实际上,web页面由于采用b/s架构,和WinForm架构不兼容,理论上是不允许web调用winform的。所以作为初学

    2024年02月04日
    浏览(77)
  • 界面控件DevExpress WinForm——轻松构建类Visual Studio UI(二)

    DevExpress WinForm拥有180+组件和UI库,能为 Windows Forms 平台创建具有影响力的业务解决方案。 DevExpress WinForm 能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任! 本文专门介绍流行的应用程序界面如何构建—

    2024年02月09日
    浏览(36)
  • WPF使用Blazor的快速案例

    下面我们将讲解在WPF中使用Blazor,并且使用Blazor做一些文件编辑操作,下面是需要用到的东西 WPF Blazor Masa Blazor Monaco 使用 CMD 指令安装模板 找到如图的模板,然后点击下一步 下一步,新建项目名称 FileEditor 打开 wwwroot/index.html ,并且引用Monaco的依赖,将一下依赖添加到body里

    2024年02月10日
    浏览(30)
  • 在Blazor中使用Chart.js

    首先,从Chart.js官方网站下载Chart.js库文件。 推荐下载这个构建好的版本https://cdnjs.com/libraries/Chart.js,最新版是 v4.2.1 在Blazor项目中把刚刚下载好的 Chart.js 放到wwwroot目录下。 在Blazor项目中的Pages文件夹下_Host.cshtml文件中添加以下代码: 在Blazor组件中使用Chart.js,需要在组件中

    2023年04月08日
    浏览(24)
  • 在MAUI中使用Masa Blazor

    在此之前我们已经介绍过什么是 Masa Blazor ,以及如何使用 Masa Blazor ,如果还有不了解 Masa Blazor 的同学可以看我上篇文章【初识Masa Blazor】。那么今天就带大家探索一下如何在 MAUI 中使用 Masa Blazor ,那么我们先来了解一下什么是MAUI? .NET MAUI全称为 .NET Multi-platform App UI ,顾名思

    2024年02月09日
    浏览(28)
  • .NET 8新预览版本使用 Blazor 组件进行服务器端呈现

    此预览版添加了对使用 Blazor 组件进行服务器端呈现的初始支持。这是 Blazor 统一工作的开始,旨在使 Blazor 组件能够满足客户端和服务器端的所有 Web UI 需求。这是该功能的早期预览版,因此仍然受到一定限制,但我们的目标是无论选择如何构建应用,都能使用可重用的 Bla

    2023年04月12日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包