概述
Avalonia 是一个开源的跨平台 UI 框架,使开发者能够使用 .NET 为 Windows、macOS、Linux、iOS、Android 和 WebAssembly 创建应用程序。
它使用自己的渲染引擎来绘制 UI 控件,确保在所有支持的平台上具有一致的外观和行为。这意味着开发者可以共享他们的 UI 代码,并在不同的目标平台上保持统一的外观和体验。

架构概述
Avalonia 基于 .NET Standard 2.0 构建,因此可以在任何支持 .NET 的平台上运行。该框架由几个关键层组成:
核心平台无关层
Avalonia 的大部分功能位于与平台无关的核心层中,该层处理:
- UI 控件和布局
- 可视化树管理
- 样式系统
- 数据绑定
- 输入处理
- 动画框架
该核心层完全独立于平台,这意味着无论操作系统或设备如何,其行为都相同。
渲染引擎
与依赖原生 UI 控件的框架不同,Avalonia 使用由 Skia 或 Direct2D 提供支持的自己的渲染引擎。这种方法意味着:
- 应用程序在各个平台上的外观和行为均相同
- 自定义控件和视觉效果可以实现一次并在任何地方工作
- 该框架不受平台特定 UI 功能的限制
平台集成层
Avalonia 在每个受支持的平台都需要集成少量的的平台特定代码。此层处理:
- 窗口管理
- 输入事件
- 剪贴板操作
- 原生对话框
- 硬件加速
- 平台特定功能
运行环境
Avalonia 应用程序在 .NET 运行时上运行,无论是 .NET Core 还是 Mono。
与原生平台集成
虽然 Avalonia 使用自己的渲染引擎,但它仍然可以与原生平台功能无缝集成:
- Windows: 支持 Win32 API 和现代 Windows 功能
- Linux: 适用于 X11、Wayland 和帧缓冲区渲染
- macOS: 与 Cocoa 和平台服务集成
- Mobile: 提供原生生命周期管理和平台集成
- Web: 通过 WebAssembly 运行,与浏览器完全集成
平台支持要求
从本质上讲,Avalonia 只需要两个基本功能来支持新平台:
- 在屏幕上绘制像素的能力
- 接收输入事件的能力
这组最低要求使得 Avalonia 能够支持如此广泛的平台,从桌面操作系统到嵌入式设备,甚至是 VNC 服务器等不常见的平台。
安装
以下三种方式选择一种安装。
方式一:安装Avalonia Template Studio(推荐)
安装 Visual Studio 扩展的步骤如下:
- 在 Visual Studio 中,点击扩展菜单上的管理扩展。
- 在搜索框中,输入"Avalonia"。
- 选择Avalonia Template Studio,点击“安装”(您需要关闭 Visual Studio 以完成安装)。

安装Avalonia Template Studio扩展后,将新增一个Avalonia C# Project项目模板。

Avalonia C# Project项目模板提供向导框创建解决方案。

解决方案中包含两个项目。假如解决方案名为GetStartedApp,GetStartedApp 是各个平台之间共享的主项目。 GetStartedApp.Desktop 是针对桌面平台的平台特定项目。

方式二:安装Avalonia for Visual Studio扩展

安装Avalonia for Visual Studio扩展后,将新增以下三个项目模板:

这三个项目模板区别:
-
Avalonia .NET App : 创建一个最基本的Avalonia项目,未引入MVVM框架。
-
Avalonia .NET MVVM App : 创建一个引入了MVVM框架的Avalonia项目,MVVM框架可选择ReactiveUI或CommunityToolkit。
此模板只创建一个项目,不同于Avalonia C# Project项目模板创建平台共享项目和平台特定项目。

-
Avalonia Cross Platform Application : 这个模板引入了MVVM框架,并为每个平台创建了一个项目。

方式三:用命令行安装 Avalonia UI 模板
如果未安装Visual Studio,而是使用命令行,运行以下命令安装 Avalonia UI 模板:
dotnet new install Avalonia.Templates
列出已安装的模板:
dotnet new list

安装的项目模板与Avalonia for Visual Studio扩展添加的项目模板一样。