在 Rider 中快速开始使用 Avalonia。
JetBrains Rider 支持为 Windows、macOS、Linux、iOS、Android 以及 WebAssembly 创建和管理 Avalonia 项目。 Avalonia 是一款开源的跨平台 UI 框架,采用其自有的 Skia 渲染引擎而非原生 UI 控件,使您的应用程序在每个平台上外观和行为一致。
JetBrains Rider 内置支持 Avalonia XAML( .axaml 文件),包括代码补全、导航、检查和快速修复。 您还可以安装 AvaloniaRider 插件,在 IDE 内直观预览 XAML。
此外,还可在 C# 及其他语言中享受 代码分析、 编码辅助 及 调试 功能,以及如 集成 VCS 客户端 等 IDE 的通用特性。
开始之前
安装 Avalonia 模板
请确保您的机器上已安装 .NET SDK (版本 6.0 或更高)。
在终端运行以下命令以安装 Avalonia 项目模板:
dotnet new install Avalonia.Templates这将添加多个模板,包括
avalonia.mvvm(MVVM 应用程序)、avalonia.app(基础应用程序)以及avalonia.xplat(面向 iOS、Android 和浏览器目标的跨平台应用程序)。可选,从 JetBrains Marketplace 安装 AvaloniaRider 插件,在 JetBrains Rider 中启用 XAML 预览器。
如计划以移动或 web 平台为目标,请安装相应的 .NET 工作负载:
创建新 Avalonia 项目
JetBrains Rider 包含新建 Avalonia 项目的可配置项目模板。
您可以使用 在新解决方案中创建新的 Avalonia 项目,或通过在 Solution Explorer 右键点击解决方案或文件夹节点并选择 ,向现有解决方案添加新的 Avalonia 项目。
选择一个可用的 Avalonia 模板:
Avalonia .NET MVVM 应用 — 使用 Model-View-ViewModel 模式的桌面应用程序。 这是大多数项目推荐使用的模板。
Avalonia .NET 应用 — 带代码隐藏的基础应用程序,类似于 WinForms 的开发模型。
Avalonia 跨平台应用程序 — 包含桌面、iOS、Android 及浏览器目标的项目。

编辑 AXAML
JetBrains Rider 为 Avalonia XAML 文件( .axaml )提供丰富的编辑体验,包括代码补全、语法高亮显示、错误分析和导航。
Rider 可识别 Avalonia 特有的 XAML 语法,如 CompiledBinding 以及 x:CompileBindings 扩展程序。 Avalonia 默认启用编译绑定,意味着绑定在编译时即被解析,提高性能并能及早检测错误。
支持在 XAML 与底层代码间相互导航:
在绑定路径上按 Ctrl+B 可跳转到对应的视图模型属性。
在 XAML 命名空间别名上按 Ctrl+B 可跳转到引用的 .NET 命名空间。
使用 查找用法 Alt+F7 可定位代码库中被引用的 Avalonia 控件和属性。
JetBrains Rider 还提供针对 Avalonia 的专用检查和快速修复,帮助您书写正确且符合规范的 AXAML 标记。

AXAML 预览器
如果已安装 AvaloniaRider 插件,编辑 AXAML 时您可实时预览。 预览器会显示在编辑器旁侧的工具窗口,并在标记被修改时实时更新。
如需使用预览器,请至少构建一次项目,以便预览器能解析所有类型和资源。 此后,AXAML 编辑器中的更改会立即体现在预览中。 如预览器无法响应更改,请重新编译项目。

设计时属性
Avalonia 支持仅在 XAML 预览器中生效的设计时属性,不影响正在运行的应用程序。 这些属性可帮助调整 UI 的样式和布局,无需重复构建应用。
使用设计时属性时,在 AXAML 文件中添加如下命名空间:
有了这个命名空间,以下属性即可用:
d:DesignWidth和d:DesignHeight— 设置预览画布的宽高。d:DataContext— 为预览分配数据上下文,通常与{x:Static}指令结合使用,用于引用返回视图模型实例的 static 属性。
作为 d:DataContext 的备选方案,也可直接在 AXAML 中使用 Design.DataContext 附加属性:
如果视图模型需通过构造函数参数(如依赖注入)初始化,可在代码隐藏中使用 Design.SetDataContext:
详细说明请参考 Avalonia XAML 预览和设计时设置文档。
运行和调试 Avalonia 应用程序
创建或打开 Avalonia 项目时,JetBrains Rider 会自动创建可用于运行项目的 运行/调试配置。
对于桌面应用程序,选择运行配置后,点击工具栏上的 运行 或 调试。 应用程序将启动于当前操作系统。
若您的解决方案包含特定平台项目(如 iOS 或 Android),可选择相应的运行配置部署至模拟器或连接设备。
可在 C# 代码任意处设置 断点 ,并以调试模式运行应用程序。 命中断点时,执行会暂停,您可以 检查变量、 计算表达式 并 逐步执行代码。
样式和主题
Avalonia 使用类 CSS 的样式系统,与 WPF 的方式不同。 样式定义在 .axaml 文件中,可全局应用,也可限定于特定控件的作用域。
Avalonia 内置 Fluent 主题,可自动适配操作系统的明暗模式。 还可以使用社区提供的主题,如 Material Design,或为应用程序创建完全自定义的外观。
由于 Avalonia 通过 Skia 渲染而非使用原生 UI 控件,您的应用程序在各平台上外观一致。 由此可在无需平台相关自定义的情况下,完全掌控界面外观。
Avalonia 架构概览
不同于抽象原生 UI 控件的框架(如 .NET MAUI),Avalonia 通过 Skia 渲染引擎自行绘制所有 UI 元素——与 Google Chrome 与 Flutter 使用同样技术。
这种架构具备多项优势:
一致的渲染效果 — 您的应用程序在 Windows、macOS、Linux 及其它平台外观一致。
更易的平台支持 — 添加新目标平台时,仅需提供窗口后端与用户输入处理。 渲染层保持不变。
嵌入式和低功耗设备 — Avalonia 可在如 Raspberry Pi 之类设备上通过 Linux framebuffer 运行,无需完整桌面环境。
在 Windows 上,Avalonia 使用 Win32 实现窗口管理。 在 macOS 上,Avalonia 使用其原生绑定(AppKit)。 在 Linux 上,则通过 X11 或 framebuffer 用于嵌入式场景。
从 WPF 迁移
Avalonia 受 WPF 启发,且拥有大量相同的核心概念,包括 XAML 标记、数据绑定、控件模板以及可视/逻辑树模型。 若有 WPF 开发经验,绝大部分现有知识都可用于 Avalonia。
需要注意的主要差异:
Avalonia XAML 文件采用 .axaml 扩展程序( .xaml 也可用)。
样式系统为 CSS 风格,而非 WPF 的样式/触发器模型。
编译绑定默认启用,以提升性能。
部分 WPF 控件在 Avalonia 中名称或 API 略有不同。
对于大规模迁移,可考虑 Avalonia XPF ,它将 WPF 内部机制替换为 Avalonia 的渲染引擎,使现有 WPF 应用程序可在 macOS 和 Linux 上以极少的代码更改运行。