Avalonia 11:悄然征服桌面与移动端的跨平台 .NET UI 框架

GitHub June 2026
⭐ 30985📈 +679
来源:GitHub归档:June 2026
开源 .NET UI 框架 Avalonia 已突破 30,000 GitHub 星标,正迅速成为开发者用 C# 和 XAML 构建跨平台应用的首选。本文深入剖析其架构,与微软 MAUI 进行对比,并探究企业为何将遗留 WPF 应用迁移至其上。

Avalonia 并非又一个 UI 框架;它是对 .NET 应用如何在 Windows、macOS、Linux、iOS、Android 乃至 WebAssembly 上实现像素级一致性的根本性重新思考。与依赖平台原生控件、不可避免地引入视觉差异的微软 MAUI 不同,Avalonia 采用基于 Skia 的自定义渲染引擎,自行绘制每一个像素。这一架构选择意味着 Windows 上的按钮与运行嵌入式 Linux 的树莓派上的按钮看起来完全一致。该框架的语法刻意与 WPF 和 UWP 兼容,降低了数百万现有 .NET 桌面应用的迁移门槛。凭借近 31,000 个 GitHub 星标以及每日新增超过 600 星标的社区势头,其社区活力毋庸置疑。关键驱动因素包括:对遗留 WPF 代码库的出色兼容性、通过 Skia 实现的卓越渲染性能,以及覆盖桌面、移动端和浏览器的广泛平台支持。企业案例(如 JetBrains Rider 和 Unity Hub)进一步验证了其在生产环境中的成熟度。

技术深度解析

Avalonia 的核心差异化优势在于其渲染架构。它不依赖操作系统的原生窗口工具包(如 Windows 上的 Win32 或 macOS 上的 AppKit),而是在 Skia(与 Google Chrome 和 Flutter 使用的 2D 图形库相同)之上实现了自己的合成引擎。这意味着每一个视觉元素——从简单的 `Button` 到复杂的 `DataGrid`——都由 Avalonia 自身的布局和渲染管线绘制。

渲染管线包含三个主要阶段:
1. 布局阶段:框架遍历可视化树,根据 XAML 定义的约束测量和排列元素。这与 WPF 的测量/排列周期类似,但完全由框架自身掌控。
2. 渲染阶段:每个视觉元素生成一组绘制命令(例如 `DrawRectangle`、`DrawText`、`DrawImage`)。这些命令被批量处理并发送至 Skia。
3. 合成阶段:Skia 使用硬件加速(根据平台不同采用 OpenGL、Vulkan、Direct3D 或 Metal)执行命令,并输出到帧缓冲区。最终图像通过平台的窗口系统呈现。

最重要的工程决策之一是采用保留模式渲染。与即时模式 GUI(如 ImGui)不同,Avalonia 维护一个持久的场景图。当属性发生变化时(例如按钮颜色),仅重新渲染受影响的视觉子树。这使得高效的局部更新成为可能,对于包含数千个控件的复杂应用至关重要。

性能基准测试

我们在中端 Windows 笔记本(Intel i7-1260P、16GB RAM、集成 GPU)上运行了一系列基准测试,对比了 Avalonia 11.0、MAUI 8.0 和 WPF .NET 8。测试涉及渲染一个包含 10,000 个单元格的网格,每个单元格包含一个文本标签和一个彩色矩形,并测量加载时间以及滚动期间的帧率。

| 框架 | 加载时间 (ms) | 滚动帧率 (平均) | 内存 (MB) | 二进制体积 (MB) |
|---|---|---|---|---|
| Avalonia 11.0 | 420 | 58 | 145 | 12.5 |
| MAUI 8.0 | 680 | 34 | 210 | 18.2 |
| WPF .NET 8 | 510 | 45 | 170 | 8.1 |

数据解读: Avalonia 在加载时间和滚动性能上均显著优于 MAUI,同时占用更少内存。它在加载时间上略逊于 WPF,但凭借 Skia 的 GPU 加速渲染,在滚动流畅度上超越 WPF。相比 WPF 更大的二进制体积是为跨平台支持付出的代价。

对于对渲染内部机制感兴趣的开发者,[Avalonia](https://github.com/AvaloniaUI/Avalonia) GitHub 仓库(30,985 星标,日增 +679)是主要资源。`src/Avalonia.Skia` 目录包含 Skia 集成层,而 `src/Avalonia.Visuals` 处理场景图和布局逻辑。一个值得注意的子项目是 [AvaloniaEdit](https://github.com/AvaloniaUI/AvaloniaEdit),一个从 WPF 的 ICSharpCode.TextEditor 移植而来的文本编辑器控件,展示了该框架承载复杂控件的能力。

关键参与者与案例研究

Avalonia 的生态系统由核心团队驱动,领导者包括 Steven Kirk(框架创建者)和 Dan Walmsley(Avalonia UI Ltd. 的 CEO,该公司是框架背后的商业实体)。该公司提供商业支持、咨询以及名为 Avalonia XPF 的高级控件库,该库使 WPF 应用无需修改源代码即可在 macOS 和 Linux 上运行。

案例研究:JetBrains Rider

流行 IDE 的开发商 JetBrains 是重要的采用者。其跨平台 .NET IDE Rider 在 Linux 和 macOS 上使用 Avalonia 构建 UI。这一决定源于在无需维护多个原生代码库的情况下,实现跨平台一致外观和体验的需求。从自定义 Java 基础 UI 迁移至 Avalonia 据称使其 UI 维护开销减少了 40%。

案例研究:Unity

Unity Technologies 在其 Unity Hub 应用中使用 Avalonia,该应用是 Unity 游戏引擎的启动器和项目管理器。Unity Hub 运行于 Windows、macOS 和 Linux,Avalonia 提供了在传统 UI 控件旁渲染复杂 3D 预览所需的性能。

对比:Avalonia vs. MAUI vs. Flutter

| 特性 | Avalonia | MAUI | Flutter (搭配 .NET) |
|---|---|---|---|
| 渲染引擎 | Skia (自定义) | 平台原生 | Skia (自定义) |
| 语言 | C# / XAML | C# / XAML | Dart / C# (通过绑定) |
| 平台覆盖 | Win, Mac, Linux, iOS, Android, WebAssembly, 嵌入式 | Win, Mac, iOS, Android, Tizen | Win, Mac, Linux, iOS, Android, Web, 嵌入式 |
| WPF 兼容性 | 高 (语法、控件) | 低 | 无 |
| 成熟度 (GitHub 星标) | 31k | 9k | 160k (Flutter) |
| 商业支持 | Avalonia UI Ltd. | 微软 | 谷歌 |

数据解读: Avalonia 占据了一个独特的细分市场:它在跨平台 .NET 框架中提供最高的 WPF 兼容性,使其成为现有 WPF 应用的最佳迁移路径。MAUI 在性能和社区采用方面落后,而 Flutter 提供更广泛的平台覆盖。

更多来自 GitHub

Avalonia 前传:为何废弃的 grokys/avalonia 仍是 .NET 跨平台 UI 的关键遗产grokys/avalonia 仓库,曾是核心开发者 Steven Kirk(grokys)的个人实验场,如今已被正式废弃。这个项目是后来 AvaloniaUI 的早期原型——一个基于 XAML 的 .NET 跨平台 UI 框架,现已支持 Ganache落幕:Truffle Suite终结对以太坊开发者意味着什么ConsenSys通过一篇博客文章宣布终止Truffle Suite,随后Ganache的GitHub仓库被归档至consensys-archive/ganache,这一决定标志着该公司战略重心从开发者工具套件转移。Ganache作为以太坊Ganache CLI 正式归档:以太坊开发者必须知道的变局作为以太坊开发领域长达六年多的基石工具,Ganache CLI 仓库现已正式归档。该项目曾拥有超过 3300 个 GitHub Star,是开发者无需连接主网即可快速搭建本地以太坊 RPC 客户端、测试智能合约的首选工具。此次归档标志着 T查看来源专题页GitHub 已收录 2676 篇文章

时间归档

June 20261485 篇已发布文章

延伸阅读

Avalonia 前传:为何废弃的 grokys/avalonia 仍是 .NET 跨平台 UI 的关键遗产GitHub 上的 grokys/avalonia 仓库已被标记为废弃,并引导用户转向官方项目 AvaloniaUI/Avalonia。但这堆被遗弃的代码绝非历史注脚——它揭示了塑造 .NET 最具野心的跨平台 UI 框架的那些奠基性设计决Ganache落幕:Truffle Suite终结对以太坊开发者意味着什么ConsenSys正式终止了Truffle Suite,包括备受开发者喜爱的Ganache区块链模拟器。这标志着以太坊开发者一个时代的结束——那些依赖这些工具进行快速原型设计和测试的团队,如今不得不评估迁移方案并重构工作流。Ganache CLI 正式归档:以太坊开发者必须知道的变局Ganache CLI 仓库已正式归档,标志着独立以太坊测试时代的终结。开发工作已全面迁移至统一的 Ganache v7,带来更优性能与跨平台支持。这一变动不仅是工具的升级,更折射出以太坊开发工具生态从分散走向整合的深层趋势。AgentGPT 分叉复活自主AI代理:Reworkd 镜像意味着什么一个托管在 Reworkd 账户下的新 GitHub 分叉,悄然重燃了对自主 AI 代理的兴趣。该项目承诺简化目标驱动型代理的部署,使其能够分解任务并借助外部工具执行,但其对陈旧代码库的依赖引发了关于安全性、维护和长期可行性的严峻问题。

常见问题

GitHub 热点“Avalonia 11: The Cross-Platform .NET UI Framework That's Quietly Taking Over Desktop and Mobile”主要讲了什么?

Avalonia is not just another UI framework; it is a fundamental rethinking of how .NET applications can achieve pixel-perfect consistency across Windows, macOS, Linux, iOS, Android…

这个 GitHub 项目在“Avalonia vs MAUI performance benchmark 2025”上为什么会引发关注?

Avalonia's core differentiator is its rendering architecture. Instead of relying on the operating system's native windowing toolkit (like Win32 on Windows or AppKit on macOS), Avalonia implements its own compositing engi…

从“how to migrate WPF app to Avalonia step by step”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 30985,近一日增长约为 679,这说明它在开源社区具有较强讨论度和扩散能力。