大家好,我是沙漠尽头的狼 。
.NET是免费,跨平台,开源,用于构建所有应用的开发人员平台 。本文演示如何在WPF中使用Blazor开发漂亮的UI,为客户端开发注入新活力 。
注 要使WPF支持Blazor,.NET版本必须是 6.0 或更高版本,本文所有示例使用的.NET 7.0,版本要求见链接,截图看如下文字:
文章插图
1. WPF默认程序本文从创建WPF
Hello World
开发:使用WPF模板创建一个默认程序,取名【WPFBlazorChat】,项目组织结构如下:
文章插图
【【炫丽】从0开始做一个WPF+Blazor对话小程序】运行项目,一个空白窗口:
文章插图
接着往下看,我们添加Blazor支持,本小节代码在这WPF默认程序源码 。
2. 添加Blazor支持依然使用上面的工程,添加Blazor支持,此部分参考微软文档生成 Windows Presentation Foundation (WPF) Blazor 应用,本小节快速略过 。
2.1 编辑工程文件双击工程文件
WPFBlazorChat.csproj
,修改处如下:文章插图
- 在项目文件的顶部,将 SDK 更改为
Microsoft.NET.Sdk.Razor
。 - 添加节点
<RootNameSpace>WPFBlazorChat</RootNameSpace>
,将项目命名空间WPFBlazorChat
设置为应用的根命名空间 。 - 添加
Nuget
包Microsoft.AspNetCore.Components.WebView.Wpf
,版本看你选择的.NET
版本而定 。
_Imports.razor
文件_Imports.razor
文件类似一个Global
using文件,专门给Razor
组件使用,放置一些用的比较多的全局的命名空间,精简代码 。内容如下,引入了一个命名空间
Microsoft.AspNetCore.Components.Web
,这是Razor
常用命名空间,包含用于向 Blazor
框架提供有关浏览器事件的信息的类型 。:@using Microsoft.AspNetCore.Components.Web
2.3 添加wwwroot\index.html
文件和Vue
、React
一样,需要一个html
文件承载Razor
组件,页面内容类似:<!DOCTYPE html><html lang="en"><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>WPFBlazorChat</title><base href="https://www.huyubaike.com/" /><link href="https://www.huyubaike.com/biancheng/css/app.css" rel="stylesheet" /><link href="https://www.huyubaike.com/biancheng/WpfBlazor.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="https://www.huyubaike.com/biancheng/_framework/blazor.webview.js"></script></body></html>
app.css
文件在下面给出定义 。- 看
<div id="app">Loading...</div>
,这里是承载Razor
组件的地方,后面所有加载的Razor
组件都是在这里渲染出来的 。 - 其他暂时不管 。
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;}
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 高铁能带1000ml的洗发水吗
- 宽带网络电视怕打雷吗
- 藕粉颗粒状的好还是粉状的
- 裙带菜泡发后可以直接吃吗
- 水质检测多少数值合格
- 蛋糕粉做馒头要不要加酵母
- 钠钙玻璃杯能倒开水吗
- 洗衣机怎么清理里面的脏东西
- 五仁馅料怎么做更松软
- 煮带壳花生放什么调料