Avalonia UI 快速上手:三步写出跨平台 .NET 桌面应用
发布时间:2026/9/3 11:15:13 作者:尧图编辑部 阅读量:1,286

Avalonia UI 快速上手三步写出跨平台 .NET 桌面应用【免费下载链接】AvaloniaDevelop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The future of .NET UI项目地址: https://gitcode.com/GitHub_Trending/ava/AvaloniaAvalonia 是一个跨平台的 .NET UI 框架一套 C# XAML 代码能跑在 Windows、macOS、Linux、Android、iOS 甚至 WebAssembly 上。熟悉 WPF 的话你的经验基本平移可用完全没接触过也没关系照下面的步骤走一遍就能出第一个窗口。克隆仓库跑通第一个窗口先把源码克隆下来已克隆可跳过git clone https://gitcode.com/GitHub_Trending/ava/Avalonia最小的可运行示例在 samples/Sandbox/整个项目就几个文件。入口逻辑集中在Program.csstatic void Main(string[] args) BuildAvaloniaApp() .StartWithClassicDesktopLifetime(args); public static AppBuilder BuildAvaloniaApp() AppBuilder.ConfigureApp() .UsePlatformDetect();这几行干了三件事注册你的 App 类、让框架自动识别当前平台、用经典桌面模式启动主窗口。其中UsePlatformDetect()是关键——它决定在 Windows、X11/Wayland 还是原生后端上渲染你不需要为每个平台写启动代码。接着看App.axaml全局样式只加一行就获得默认 Fluent 外观Application.Styles FluentTheme / /Application.Styles最后在MainWindow.axaml里放个 TextBlock 或 Button保存、运行第一个窗口就成了。想看完整控件效果直接打开 samples/ControlCatalog/每个内置控件都有现成演示页。项目结构一张表看懂路径职责src/Avalonia.Base/核心层属性系统、布局、渲染、输入src/Avalonia.Controls/内置控件Button、TextBox、Window 等src/Avalonia.Themes.Fluent/默认 Fluent 主题样式src/Windows/、src/Avalonia.X11/各平台的窗口与渲染后端samples/可运行示例Sandbox、ControlCatalog 等tests/单元测试与跨平台渲染回归测试docs/构建、打包、调试文档nukebuild/基于 Nuke 的构建脚本global.json锁定所需 .NET SDK 版本按需求改造的常见自定义点换主题把App.axaml里的FluentTheme /换成别的主题标签即可。仓库自带 Fluent 和 Simplesrc/Avalonia.Themes.Simple/两套按需引用。加依赖仓库内部用统一版本管理的 NuGet 引用Directory.Packages.props如果你在外面新建工程直接安装Avalonia和Avalonia.Desktop两个包就够了不必引用仓库里的 csproj。改入口行为想开多窗口、隐藏主窗口或改启动逻辑只改App.axaml.cs的OnFrameworkInitializationCompleted入口代码不用动。新手最容易卡住的三个坑克隆后构建直接失败先看global.json——它锁定了 SDK 版本原因是构建脚本和源码生成器依赖特定编译器版本。装好对应 SDK 再构建别跳过。Avalonia 不等于 WPF语法很像但并非一对一复制部分 WPF 控件在这里不存在或行为有差异。迁移老代码要逐个确认别整段照搬。XAML 改了不生效文件扩展名必须是.axaml它由构建时的 XAML 编译器处理。引用写错通常表现为编译期报错而非运行时黑屏报错信息值得逐字读。下一步把 samples/VirtualizationDemo/ 完整跑一遍再翻翻 docs/ 里的构建与调试文档就足够开始你自己的项目了。【免费下载链接】AvaloniaDevelop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The future of .NET UI项目地址: https://gitcode.com/GitHub_Trending/ava/Avalonia创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考