Penguin.AvaloniaUI

一个现代化的跨平台 UI 控件库,专为 Avalonia 应用程序设计,提供业务场景控件和响应式 MVVM 支持。

技术栈

技术 版本 用途
.NET 9.0 应用运行时环境
Avalonia 11.3.7 跨平台桌面 UI 框架
ReactiveUI.Avalonia 11.3.0 响应式 MVVM 实现
Semi.Avalonia 11.2.1.9 现代化设计主题
xUnit 2.6.6 单元测试框架

样式系统决策

  • 日期: 2025-10-16
  • 决策: 使用 Semi.Avalonia
  • 理由: Semi.Avalonia 在 NuGet 上可直接获取(版本 11.2.1.9),集成简单(只需添加 xmlns 和主题引用),提供了基于 Semi Design 的现代化设计系统。评估和集成耗时不到 10 分钟,符合我们的效率要求。

项目结构

D:\32_avalonia.ui/
├── src/
│   ├── Penguin.AvaloniaUI/              # 核心控件库
│   │   ├── Controls/                     # 业务场景控件
│   │   ├── Layouts/                      # 布局控件
│   │   ├── Themes/                       # 主题系统
│   │   └── Utils/                        # 工具类
│   │
│   ├── Example/                          # 示例应用
│   │   ├── Views/                        # 视图/窗口
│   │   ├── ViewModels/                   # 视图模型
│   │   └── Models/                       # 测试数据模型
│   │
│   └── Penguin.AvaloniaUI.Tests/        # 单元测试
│       ├── Controls/
│       ├── Layouts/
│       ├── Themes/
│       └── Utils/
├── docs/                                 # 项目文档
├── Directory.Packages.props              # 统一包版本管理
└── Penguin.AvaloniaUI.sln               # 解决方案文件

快速开始

先决条件

  • .NET 9.0 SDK 或更高版本
  • Windows、macOS 或 Linux

构建

# 恢复包
dotnet restore

# 编译所有项目
dotnet build

# 运行测试
dotnet test

# 运行示例应用
dotnet run --project src/Example/Example.csproj

开发

项目使用 Central Package Management统一包版本管理。所有包版本在 Directory.Packages.props 中定义。在项目文件中添加新包时,不要指定版本号:

<ItemGroup>
  <PackageReference Include="PackageName" />
</ItemGroup>

代码格式通过 .editorconfig 强制执行。运行格式检查:

dotnet format --verify-no-changes

许可证

详情请参阅 LICENSE 文件。

Description
No description provided
Readme 215 KiB
Languages
C# 100%