Alternate Text

Avalonia

工具 其他
技术栈: C++

使用C#和XAML开发桌面、嵌入式、移动端以及WebAssembly应用。.NET用户界面的未来

2026-10-08 12 微信:tianz003

Avalonia 是一个基于 .NET 的开源跨平台 UI 框架,核心目标是让开发者用 C# + XAML 写一套界面,就能运行在 Windows、macOS、Linux、iOS、Android 和 WebAssembly 上。 它常被视为“跨平台 WPF”,但在实现上并不依赖系统原生控件,而是通过自绘渲染保证各平台 UI 一致。

项目定位

Avalonia 最早由 Steven Kirk 于 2013 年启动,最初名为 Perspex,2016 年更名为 Avalonia,后进入 .NET Foundation。

它最适合做 桌面端软件、工控界面、数据看板、金融终端、医疗/工业设备 UI,移动端和 WebAssembly 目前仍在持续完善中。

核心特性

特性说明
自绘渲染默认使用 Skia/SkiaSharp 渲染,不依赖原生控件,跨平台外观高度一致
XAML + C#UI 用 .axaml 声明式编写,逻辑用 C# / F# 实现,WPF 开发者上手成本低
MVVM 友好内置数据绑定、命令、样式系统,可配合 CommunityToolkit.Mvvm、ReactiveUI 使用
多平台覆盖桌面端最成熟,同时支持移动端、嵌入式 Linux 和 WebAssembly
Avalonia 12 升级最低要求 .NET 8,推荐 .NET 10;Android/iOS 强制 .NET 10;统一 Skia 渲染路径
生态扩展提供 Avalonia XPF、Avalonia Accelerate 商业方案,社区有 Ursa、SukiUI 等控件库


架构与渲染

Avalonia 的核心思路是:UI 逻辑层与平台渲染层分离。

它把窗口、控件、布局、动画抽象成逻辑树和可视化树,再通过平台抽象层交给 Skia 渲染。

Avalonia 12 已移除 Direct2D1 后端,统一走 Skia 路径,并正在与 Flutter 团队协作引入 Impeller 渲染引擎。

与常见框架对比

框架优势适合场景
Avalonia桌面端强、自绘一致、工控/嵌入式强桌面软件、工业终端、数据看板
.NET MAUI微软官方、移动+Windows 生态好企业移动应用、微软生态应用
WPFWindows 桌面成熟度高仅面向 Windows 的传统桌面应用
Flutter多端覆盖广、动画表现好精品移动 App、跨端消费级应用
Electron前端生态强、开发快Web 团队主导的桌面应用


快速上手

dotnet new install Avalonia.Templates
dotnet new avalonia.app -n MyAvaloniaApp
cd MyAvaloniaApp
dotnet run

运行后会在当前系统上打开一个窗口。若使用 Visual Studio,可安装 Avalonia for Visual Studio 扩展;若使用 JetBrains Rider,XAML 预览和开发体验通常更稳定。

局限与注意事项

  • AOT 支持仍不够完善,复杂项目可能需要额外兼容处理。
  • 官方基础控件数量相对有限,复杂企业控件可考虑 Ursa 等社区库。
  • 移动端不是主战场,生态和成熟度不如桌面端。
  • Visual Studio 插件偶有稳定性问题,Rider 体验相对更好。
  • Avalonia 12 不再支持 .NET Framework / .NET Standard 2.0,老项目迁移需评估。

生态动态

2026 年开源社区中,Avalonia 还出现过一次较受关注的讨论:独立开发者“布布”主导的 OpenHarmony.Avalonia 适配项目最终归档,引发了关于开源贡献、商业合作与开源伦理的讨论。但需要说明的是,Avalonia 官方目前并未正式支持鸿蒙平台。