×

开箱即用的 .NET 8 + Avalonia + SukiUI 桌面应用模板

独孤求败 独孤求败 发表于2026-05-29 15:08:44 浏览14 评论0

抢沙发发表评论

前言

在跨平台桌面应用开发领域,Avalonia凭借其与WPF相似的API设计和跨平台特性,逐渐成为.NET生态中备受关注的UI框架。

然而,对于初学者而言,从零搭建一个包含数据展示、浏览器集成、多语言支持等功能的完整应用仍存在较高门槛。

推荐一个通过整合Avalonia、SukiUI等核心组件,提供一套开箱即用的桌面应用开发模板,在降低学习成本,加速开发流程。本文将从项目架构、功能实现、技术特点等维度展开分析,为大家提供全面的参考指南。

项目介绍

一个简易的桌面应用集成框架,其核心在于展示如何基于Avalonia与SukiUI开发一个简单的桌面应用,并整合了如DataGrid、CefGlue.Avalonia等常用功能,以简化开发流程并提高效率。

该框架不仅展示基本组件的使用方法,还提供对图表(LiveChartsCore)、图标库(Material.Icons.Avalonia)的支持,以及多语言环境和更新功能的搭建示例。

项目功能

1、数据网格(DataGrid)与分页功能

实现方式:基于Avalonia.Controls.DataGrid控件,通过自定义PagedCollection<T>类实现数据分页加载;

交互逻辑:分页控件与DataGrid双向绑定,用户点击页码时触发LoadPageCommand命令,动态更新数据源;

示例代码:DataGridFeature.axaml中定义了列配置与分页控件布局,DataGridViewModel.cs处理数据加载与分页逻辑。

2、内嵌浏览器(CEF)集成

技术选型:采用CefGlue.Avalonia实现Chromium嵌入式框架的集成;

当前限制:暂未实现页面内容解析(如DOM操作)与代理设置,但支持基础导航与地址栏显示;

使用场景:适合需要嵌入Web应用(如内部管理系统、帮助文档)的桌面工具。

3、动态图表渲染(LiveChartsCore)

功能覆盖:支持折线图、柱状图、饼图等常见图表类型;

数据绑定:通过SeriesCollection绑定动态数据源,例如实时监控系统中的传感器数据;

交互扩展:支持图表缩放、鼠标悬停提示等高级功能。

4、图标库(Material.Icons.Avalonia)

引入方式:通过NuGet包直接添加依赖,无需手动复制资源文件;

使用示例:在XAML中通过<materialIcon:MaterialIcon Kind="Home" />快速插入Material Design图标。

5、多语言支持

实现机制:使用CSV文件存储翻译键值对(如Resources/zh-CN.csv),通过Localization.cs工具类动态加载语言包;

切换方式:调用Localization.SetLanguage("en-US")即可全局更新UI文本,无需重启应用。

6、自动更新功能

技术栈:集成Downloader库实现后台版本检查与文件下载;

触发流程:UpdateTask.cs定期调用CheckVersion()方法,检测到新版本后下载安装包并提示用户重启。

项目特点

1、简单易懂:大多数功能直接使用,减少封装层级,方便理解。

2、跨平台支持:基于Avalonia框架,确保在Windows、macOS和Linux等多个操作系统上的兼容性。

3、功能全面:涵盖从数据展示到用户交互,再到更新机制在内的多个方面。

4、高度定制化:通过SukiUI提供的丰富的UI控件和主题选项,满足个性化需求。

项目结构

EasyTemplate.Desktop.Avalonia/
├── EasyTemplate.Ava.Desktop/       # 主启动项目
├── EasyTemplate.Ava/               # 桌面组件主要项目
│   └── Features/                   # 组件存放目录
├── EasyTemplate.Ava.Tool/          # 工具类、实体和配置
│   ├── Resources/                  # 多语言资源文件
│   ├── Util/                       # 工具类
│   ├── Configuration/              # 配置文件
│   └── Entity/                     # 实体类
└── ThirdPartyDemo/                 # 第三方示例(已编译版本)
    ├── SukiUI.Demo/
    └── Material.Icons.Avalonia/

项目技术

.NET 8

  • 作为长期支持(LTS)版本,提供性能优化与新特性(如原生AOT编译);

Avalonia 11

  • 跨平台UI框架,支持Windows/macOS/Linux,API设计兼容WPF开发;

SukiUI

  • 现代化控件库,补充Avalonia原生控件的不足(如导航栏、卡片布局);

LiveChartsCore

  • 轻量级图表库,相比OxyPlot更易上手,适合快速实现数据可视化。

项目效果

模版效果

图片


模版首页

图片

数据管理

图片

内嵌浏览器

图片

系统设置

图片

项目源码

Gitee:https://gitee.com/allofyouenemies/EasyTemplate.Desktop.Avalonia

其他组件

Avalonia 官方文档

https://docs.avaloniaui.net/zh-Hans/docs/welcome

SukiUI 官方文档

https://kikipoulet.github.io/SukiUI/documentation/controls/navigation/stackpage.html

SukiUI

https://github.com/kikipoulet/SukiUI

总结

EasyTemplate.Desktop.Avalonia 作为一个开源项目,为桌面应用程序的开发提供一个良好的起点。它不仅展示了如何利用Avalonia和SukiUI构建跨平台应用,而且还集成了多种实用功能,大家可以更加专注于业务逻辑的实现。


群贤毕至

访客