Files
AtomUI/README.zh-CN.md

14 KiB
Raw Permalink Blame History


文档语言: English | 简体中文

介绍

AtomUI 是面向 Avalonia/.NET 桌面应用的 Ant Design 6 组件体系,目标是把 Ant Design 的企业级交互模式、 视觉语言、设计 Token 和主题定制能力带到 Windows、macOS、Linux 原生跨平台应用中。

项目提供面向生产场景的桌面控件、图标包、字体包、原生窗口集成、DataGrid、ColorPicker,以及用于自定义控件、 Token 和本地化开发的源代码生成器。欢迎提交 Issue、PR 和改进建议。

特性

  • 将 Ant Design 6 的交互体验和视觉体系适配到原生 Avalonia 桌面应用。
  • 提供覆盖布局、导航、数据录入、反馈、数据展示等场景的开箱即用控件,并按需提供 DataGrid、ColorPicker 等高级包。
  • 基于 Avalonia 样式与资源系统实现 Token 驱动的主题能力,便于在应用级统一定制视觉风格。
  • 使用统一的 .NET/XAML 开发模型支持 Windows、macOS、Linux 跨平台桌面应用。
  • 提供自定义控件、主题 Token、本地化相关的源代码生成能力,减少重复基础设施代码。

运行环境

.NET 10(构建 AtomUI MSBuild 集成需要 .NET 10 SDK)
Avalonia 12.1.3
支持 Windows、macOS、Linux 跨平台

最新版本说明

AtomUI 6.2.5 修复应用主题切换后 Window 内容背景未更新的问题, 同时保留透明窗口行为和显式设置的后备背景。生成的注册组类型名随版本变化, 请同步升级相关包、重新编译已编译的消费方,并重新发布裁剪/NativeAOT 应用。 详情见 6.2.5 API 迁移指南和 Changelog。

感谢通明湖中心孵化 AtomUI OSS

感谢 Gitee 对 AtomUI 的认可

中文社区

目前我们提供 QQ 和微信开发者交流群,欢迎对 AtomUI 或 Avalonia 感兴趣的开发者扫码加入:

PS:扫码请注明来意,比如:学习 AtomUI 或 Avalonia 爱好者。

开始使用

AtomUI 推荐通过 NuGet 安装。先安装主桌面控件包,再根据应用需要按需添加 DataGrid、ColorPicker、Extras 等可选包。 下面示例使用当前项目最新版本。

目前我们已经发布的包如下:

包名 描述
AtomUI.Native 原生平台适配基础设施
AtomUI.Core 核心基础设施 — 主题系统、Token 系统、动画
AtomUI.Fonts.AlibabaSans Alibaba Sans 字体包
AtomUI.Fonts.AlibabaPuHuiTi 阿里巴巴普惠体字体包
AtomUI.Icons.Shared 图标基础设施
AtomUI.Icons.AntDesign Ant Design 图标包
AtomUI.Controls.Shared 面向控件开发的共享接口与枚举
AtomUI.Controls 基础控件与通用能力
AtomUI.Desktop.Controls 桌面控件库 — 主要安装包
AtomUI.Desktop.Controls.DataGrid DataGrid 数据表格控件(按需引入)
AtomUI.Desktop.Controls.ColorPicker ColorPicker 颜色选择器控件(按需引入)
AtomUI.Desktop.Controls.Extras 补充桌面控件(按需引入)
AtomUI.Generator 面向自定义控件、Token 与本地化开发的源代码生成器
dotnet add package AtomUI.Desktop.Controls --version 6.2.5
dotnet add package AtomUI.Desktop.Controls.DataGrid --version 6.2.5
dotnet add package AtomUI.Desktop.Controls.ColorPicker --version 6.2.5
dotnet add package AtomUI.Desktop.Controls.Extras --version 6.2.5

您也可以在 IDE 的 NuGet 包管理器中安装。以 Rider 为例,可以依次点击:

NuGet -> 软件包

搜索 AtomUI,即可找到可用包,并按项目需要安装。

安装前请查看包详情中的“框架”和“依赖”,确认目标框架与 Avalonia 版本兼容。

启用 AtomUI 库
配置项目文件
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>net10.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <BuiltInComInteropSupport>true</BuiltInComInteropSupport>
        <ApplicationManifest>app.manifest</ApplicationManifest>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="AtomUI.Desktop.Controls" Version="6.2.5"/>
        <PackageReference Include="AtomUI.Desktop.Controls.DataGrid" Version="6.2.5"/>
        <PackageReference Include="AtomUI.Desktop.Controls.ColorPicker" Version="6.2.5"/>
        <PackageReference Include="AtomUI.Desktop.Controls.Extras" Version="6.2.5"/>
        <PackageReference Include="AvaloniaUI.DiagnosticsSupport" Version="2.2.1"/>
    </ItemGroup>
</Project>
配置程序入口文件

在 AppBuilder 链上启用 AtomUI:

using Avalonia;
using System;
using AtomUI;
using AtomUI.Desktop.Controls;
using AtomUI.Localization;
using AtomUI.Theme;
using ReactiveUI.Avalonia;

namespace AtomUIProgressApp;

internal class Program
{
    [STAThread]
    public static void Main(string[] args) => BuildAvaloniaApp()
        .StartWithClassicDesktopLifetime(args);

    public static AppBuilder BuildAvaloniaApp()
    {
        return AppBuilder.Configure<App>()
                         .UseReactiveUI()
                         .UseAtomUIPlatformDetect()
                         .WithAtomUIDefaultOptions()
                         .UseAtomUI(builder =>
                         {
                             builder.UseLanguages(
                                 LanguageTags.ZhCN,
                                 [LanguageTags.EnUS, LanguageTags.ZhCN, LanguageTags.ZhTW]);
                             builder.WithInitialTheme(IThemeManager.DEFAULT_THEME_ID);
                             builder.UseAlibabaSansFont();
                             builder.UseDesktopControls();
                             builder.UseDesktopColorPicker();   // 可选
                             builder.UseDesktopDataGrid();      // 可选
                         })
                         .WithDeveloperTools()
                         .LogToTrace();
    }
}
把 Application 类声明为 partial

AtomUI 生成器会把 partial 应用类挂接到启动流程,Initialize() 执行时 AtomUI 已经就绪:

using Avalonia;
using Avalonia.Markup.Xaml;

public partial class App : Application
{
    public override void Initialize() => AvaloniaXamlLoader.Load(this);
}

需要启动 Splash 时见启动指南。

开始使用 AtomUI

注册 AtomUI 后,可以直接在 XAML 中使用 AtomUI 控件和 Ant Design 图标。

<atom:Window xmlns="https://github.com/avaloniaui"
             xmlns:atom="https://atomui.net"
             xmlns:antdicons="https://atomui.net/icons/antdesign">
    <atom:Space Orientation="Horizontal">
        <atom:Button ButtonType="Primary">开始使用</atom:Button>
        <atom:Button Icon="{antdicons:AntDesignIconProvider StarOutlined}">在 GitHub 上点赞</atom:Button>
    </atom:Space>
</atom:Window>

体验所有控件

您可以在本机启动 Gallery 项目,浏览 AtomUI 控件、典型用法、示例和生成文档。

git clone https://github.com/AtomUI/AtomUI.git
cd AtomUI
dotnet run --project controlgallery/AtomUIGallery.Desktop/AtomUIGallery.Desktop.csproj

小的示例项目

Gallery 项目覆盖面较完整。如果您希望先看更小的入门项目,可以前往:

AtomUI/AtomUI.Examples

这些示例展示了更紧凑的应用搭建方式,更适合作为新项目起点。

赞助商

SophNet

SophNet 提供稳定高效的 AI 模型 API 平台,帮助开发者快速接入大模型能力。

火数云

火数云提供云服务器、高防与 GPU 算力服务,支持企业安全、可靠地完成业务上云。

致谢

Ant Design

Ant Design 是由蚂蚁集团推出的企业级 UI 设计语言和 React 组件库。它提供了一套高质量、统一的 React 组件,包含丰富的预设主题与国际化支持,致力于提升企业级应用的设计和开发效率。其优雅的设计和出色的开发体验,使其成为中后台项目中最流行的前端解决方案之一。

Avalonia OSS

Avalonia 是一个跨平台的 .NET UI 框架,使用 XAML 语言设计界面。它支持 Windows、macOS、Linux、iOS 和 Android 等多个平台,提供与 WPF 相似的开发体验。凭借其高性能的渲染引擎和丰富的控件库,Avalonia 能够帮助企业快速构建现代化的桌面和移动应用程序。

许可证说明

使用 AtomUI OSS 的项目需要遵循 LGPL v3 协议。商业应用,包括公司内部项目、个人商业项目和外包项目, 在使用已发布二进制包链接的情况下可以免费使用。如果基于源码定制 AtomUI,则需要按协议开放修改代码, 或购买商业授权。商业授权请联系:北京秦派软件科技有限公司。

🤝 贡献

欢迎各界人士贡献各种资源,如果您对贡献代码感兴趣,请随意查看我们的 GitHub 问题页面,让我们见识一下您的实力。