Scripts2026年5月12日·1 分钟阅读

Avalonia — Cross-Platform .NET UI Framework

Build native desktop, mobile, and web applications using .NET and XAML with a single codebase across Windows, macOS, Linux, iOS, Android, and WebAssembly.

Introduction

Avalonia is an open-source cross-platform UI framework for .NET that lets developers build desktop, mobile, and web applications from a single XAML-based codebase. It draws inspiration from WPF and UWP while targeting every major platform including Windows, macOS, Linux, iOS, Android, and WebAssembly.

What Avalonia Does

  • Renders pixel-perfect UI on Windows, macOS, Linux, iOS, Android, and WASM using a custom Skia/Composition rendering engine
  • Provides a rich XAML dialect with data binding, styles, control templates, and an MVVM-friendly architecture
  • Ships a comprehensive control library covering buttons, data grids, tree views, docking panels, and more
  • Supports hot reload during development for rapid UI iteration
  • Offers accessibility support with screen reader compatibility across platforms

Architecture Overview

Avalonia uses a platform-agnostic rendering pipeline built on top of Skia and a custom composition engine. The framework abstracts window management, input handling, and GPU compositing per platform while keeping the XAML layout engine, styling system, and data-binding runtime entirely shared. This means UI logic, templates, and converters run identically regardless of the target OS.

Self-Hosting & Configuration

  • Install via dotnet new install Avalonia.Templates and scaffold with dotnet new avalonia.app
  • Configure platform targets in the .csproj file; desktop is default, add mobile/browser workloads as needed
  • Customize theming through Styles in App.axaml using Fluent or Simple built-in themes
  • Integrate with dependency injection frameworks like Microsoft.Extensions.DependencyInjection
  • Publish self-contained or framework-dependent binaries using standard dotnet publish commands

Key Features

  • True single-codebase UI: one XAML dialect runs on six platforms without per-platform branching
  • Composition renderer delivers smooth 60fps animations and GPU-accelerated drawing
  • Mature DevTools inspector (F12 at runtime) for live visual tree debugging
  • Reactive extensions integration via Avalonia.ReactiveUI for advanced state management
  • Active ecosystem with community controls, IDE plugins for Visual Studio and Rider, and XAML previewer support

Comparison with Similar Tools

  • WPF — Windows-only; Avalonia brings a similar XAML experience to every OS
  • MAUI — Microsoft's official cross-platform framework but limited Linux and WASM support; Avalonia covers both
  • Electron — Uses web tech in a Chromium shell with higher memory overhead; Avalonia is native .NET
  • Flutter — Dart-based with its own widget set; Avalonia targets .NET developers who prefer C# and XAML
  • Uno Platform — Also .NET-based and multi-platform; Avalonia has a more WPF-like API and custom renderer

FAQ

Q: Does Avalonia require a commercial license? A: No. Avalonia is MIT-licensed and free for both personal and commercial use. Avalonia XPF (a compatibility layer for WPF apps) is a separate commercial product.

Q: Can I use existing WPF controls and libraries? A: Avalonia XAML is inspired by WPF but is not binary-compatible. Controls need porting, though the API surface is deliberately similar to ease migration.

Q: What IDEs support Avalonia development? A: JetBrains Rider and Visual Studio both have Avalonia extensions with XAML previewer, code completion, and hot reload support.

Q: How mature is mobile support? A: iOS and Android support is available and improving rapidly. Desktop (Windows, macOS, Linux) is the most mature target.

Sources

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产