惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
博客园_首页
U
Unit 42
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
MongoDB | Blog
MongoDB | Blog
美团技术团队
H
Help Net Security
G
Google Developers Blog
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
aimingoo的专栏
aimingoo的专栏
Google DeepMind News
Google DeepMind News
J
Java Code Geeks
M
MIT News - Artificial intelligence
腾讯CDC
IT之家
IT之家
Vercel News
Vercel News
C
Check Point Blog
博客园 - 三生石上(FineUI控件)
Last Week in AI
Last Week in AI
I
InfoQ
博客园 - 司徒正美
A
About on SuperTechFans

博客园 - z5337

【转】禁用 Chrome 浏览器的自动更新 【转】Avalonia 12 最小信创项目模板 【转】国产操作系统对 Avalonia 的支持情况 【转】国产操作系统优化篇 [openKylin] 入门知识点 【转】国产操作系统优化篇 [openKylin] 第一步 - Qt + VMware 【转】p2055dn 打印机配置 IP 地址 【转】Windows 锁屏后屏幕不熄灭排查 【转】既然 java 8 因为组件容易被攻击,.net core 也有大量第三方组件,是不是也容易出问题 【转】最小 web api 学习 【转】使用记事本区分图片格式 【转】蓝牙耳机的播放控制 【转】JoyToKey 键位映射 【转】[C#] 要从接口取时间,单个订单查询和批量查询,写一个接口还是两个接口合适? 【转】[C#] Web API 中的常见层次 【转】[C#] .net core 项目的目标框架设置 【转】[C#] 项目里的配置文件与选项对比 【转】[C#] GlobalUsing 的使用 【转】[.net core] 项目的 Windows 服务器部署 【转】《三字经》全文 【转】[IDEA] 调试时怎么判断使用哪个配置文件 【转】PO、DO、VO、BO、DTO、DAO、POJO 的区别 【转】[web]怎么移除网页最上层的水印 【转】[C#] 30+个.NET开发最佳实践 【转】[C#] WPF 保留选中的高亮色 【转】Windows Server 系统的桌面上显示 此电脑 图标 【转】[C#] 参数前加 in 的作用 【转】[C#] Enum 的 Flags 特性 【转】[C#] Tuples 元组介绍 【转】[C#] Record 的使用 【转】[C#] 预处理指令
【转】Avalonia 周边介绍
z5337 · 2026-09-04 · via 博客园 - z5337

转自:豆包 AI

Avalonia 基础框架本体永久 MIT 免费,不需要注册、不需要付费,可以直接商用发布;收费/需要账号注册的全部是「可选商业工具、高级控件包、XPF」,完全可以不买

✅ 免费部分(不需要注册、无授权码,直接Nuget引用)

AvaloniaAvalonia.Controls、基础控件、渲染引擎、基础Window/List/Grid、老版开源TreeDataGrid、Rider插件、VS Code插件,全部MIT,随便商用。

重点:老版TreeDataGrid是开源免费;新版TreeDataGrid是 Avalonia Pro 专有收费控件,这点很多人踩坑。

一、Avalonia 官方商业套件(需要注册Avalonia账号 + 授权码激活)

官网现在统一三层:Plus / Pro / Enterprise(原Accelerate更名)

  1. Avalonia Plus(订阅收费)
    • 内容:新版VS扩展、新版DevTools可视化调试器、Parcel打包工具(一键打包签名安装包)
    • 用途:开发工具增强,不包含高级UI控件
    • 规则:商用项目必须订阅;非商业/学生可以申请Community免费许可(要注册账号)
  2. Avalonia Pro(订阅,包含Plus全部能力 + 专有高级控件)⭐ 最容易踩坑 专有收费控件清单:
    • TreeDataGrid(新版高性能树形表格,老版MIT TreeDataGrid还能继续免费使用
    • NativeWebView(原生WebView,不打包Chromium,信创很有用)
    • VirtualKeyboard 虚拟键盘、MediaPlayer、高级图表等
    • 使用方式:项目csproj里面配置LicenseKey,编译+运行校验授权,必须注册Avalonia账号获取License
  3. Avalonia Enterprise
    • Pro全部内容 + 商业控件源码访问、LTS长期支持、工程团队直接SLA技术支持、离线空气隔离部署授权。适合大型政企/工业项目。

二、Avalonia XPF(独立重量级商业产品,单独许可,必须注册)【信创WPF迁移重点关注】

XPF = 在Linux/国产系统直接跑原有WPF代码,不用大规模改写WPF工程,独立产品,不属于Plus/Pro

  • 定位:WPF兼容层,适合存量WPF迁移银河麒麟/统信UOS
  • 许可模式:按应用程序授权(每个程序一套license,不是按开发者人头),永久运行许可;订阅只是1年更新+技术支持
  • 三个档位:Internal(内部自用)、Business(交付给客户的商用软件)、Enterprise(移动端、Wasm、嵌入式Linux)
  • 国产嵌入式Linux属于额外付费Add-on

    重要:不用XPF,单纯原生Avalonia开发,完全不需要买这个。如果你是从零新建Avalonia项目,不需要XPF。

三、第三方配套控件库(独立收费,和Avalonia官方无关)

这些是.NET生态老牌控件厂商,支持Avalonia,单独购买、单独注册许可,信创项目如果需要复杂图表、Grid、报表会用到:

  1. Syncfusion Avalonia控件:表格、图表、PDF、报表,商业订阅
  2. Telerik UI for Avalonia:全套业务控件,订阅制
  3. SciChart(高性能实时图表,工业HMI常用):商业许可,工业大屏高频使用
  4. Actipro Avalonia:高级编辑器、Ribbon、属性网格,商业收费

社区免费控件库:Avalonia.Controls.DataGrid、Material.Avalonia、FluentAvalonia 全部MIT,免费商用,不用注册授权,信创项目很常用。

四、信创项目选型建议(重点)

✅ 推荐方案(无任何官方付费组件)

Avalonia开源核心 + Material.Avalonia/FluentAvalonia + 开源DataGrid + 自己封装表格/图表 全程MIT,不需要注册Avalonia账号、不需要License、无授权校验,打包到银河麒麟/统信完全没问题

表格需求:用开源DataGrid;树形表格:用旧版MIT TreeDataGrid(注意包名区分,不要引入Pro版本)

⚠️ 什么时候才需要付费:

  1. 需要新版TreeDataGrid / NativeWebView / 官方虚拟键盘 → Avalonia Pro
  2. 存量WPF项目,不想大规模重构,直接迁移到国产Linux → Avalonia XPF
  3. 工业实时大屏、高性能图表 → SciChart
  4. 企业级长期SLA支持、源码访问 → Enterprise

五、关键避坑总结

  1. Avalonia基础框架永远免费商用,没有运行时水印、没有强制注册,很多人混淆:收费的只是开发增强工具 + 新版高级控件 + XPF
  2. 老TreeDataGrid MIT免费;新TreeDataGrid是Pro收费控件,Nuget包不一样,不要混用
  3. Community免费许可仅限非商业项目;商用项目如果想用Plus/Pro工具,必须购买订阅
  4. XPF是独立产品,每个应用单独授权,价格比较贵,从零开发Avalonia尽量避开XPF
  5. 第三方控件(Syncfusion/Telerik/SciChart)属于独立产品,不属于Avalonia官方套件

豆包整理的一份纯开源Avalonia信创项目推荐NuGet清单(全部MIT,无任何商业依赖)

✅ 纯开源 Avalonia 信创项目 NuGet 清单(全部 MIT,无商业授权、无水印、无需注册)

适配:银河麒麟V10、统信UOS V20;支持 X64 / ARM64 / LoongArch64;Avalonia 推荐固定版本 12.0.x(稳定、原生龙芯支持)

基础核心包(必装)

<!-- Avalonia 核心 -->
<PackageReference Include="Avalonia" Version="12.0.10" />
<PackageReference Include="Avalonia.Desktop" Version="12.0.10" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="12.0.10" />
<PackageReference Include="Avalonia.Fonts.Inter" Version="12.0.10" />

窗口、弹窗、基础控件增强

<!-- FluentAvalonia:复刻WinUI风格控件,NavigationView、CommandBar、Dialog、ToggleSplitButton,信创政务界面很常用 -->
<PackageReference Include="FluentAvalonia" Version="2.2.0" />

<!-- Material.Avalonia:Material Design 风格,表单、输入框、卡片 -->
<PackageReference Include="Material.Avalonia" Version="3.0.0" />
<PackageReference Include="Material.Avalonia.Dialogs" Version="3.0.0" />

表格、树形表格(重点!免费TreeDataGrid,不是Pro收费版)

<!-- 普通DataGrid 开源版本,MIT -->
<PackageReference Include="Avalonia.Controls.DataGrid" Version="12.0.10" />

<!-- 【免费旧版TreeDataGrid,MIT,⚠️ 不要安装 Avalonia.TreeDataGrid(新版Pro收费)】 -->
<PackageReference Include="Avalonia.Controls.TreeDataGrid" Version="11.0.10" />

⚠️ 包名区分大坑:

  • Avalonia.Controls.TreeDataGrid:MIT免费
  • Avalonia.TreeDataGrid:Avalonia Pro商业控件,带授权校验

工具类、MVVM(推荐CommunityToolkit,微软维护MIT)

<!-- MVVM 首选,ObservableObject、RelayCommand,信创项目广泛使用 -->
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" />

<!-- 可选:依赖注入,大型项目用 -->
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />

其他实用开源组件(按需选用)

<!-- 文件选择器增强、文件拖拽辅助 -->
<PackageReference Include="Avalonia.Styling" Version="12.0.10" />

<!-- 日志(可选)Serilog MIT -->
<PackageReference Include="Serilog" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.Console" Version="5.0.1" />

<!-- 图标:Material Icons 字体图标 -->
<PackageReference Include="Material.Icons.Avalonia" Version="2.1.0" />

📌 国产系统中文方块字体修复代码(放在App.axaml.cs)

using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml.Styling;

namespace YourAppName;

public partial class App : Application
{
    public override void Initialize()
    {
        AvaloniaXamlLoader.Load(this);
        // 全局字体回退,适配银河麒麟、统信UOS
        this.Resources["FontFamily"] =
            new Avalonia.Media.FontFamily("WenQuanYi Zen Hei,Noto Sans CJK SC,Source Han Sans CN,SimHei");
    }

    public override void OnFrameworkInitializationCompleted()
    {
        if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
        {
            desktop.MainWindow = new MainWindow();
        }
        base.OnFrameworkInitializationCompleted();
    }
}

配套 axaml 全局引用:所有TextBlock默认继承这个FontFamily

📦 信创发布命令(.NET 8 + NativeAOT,单文件,自带Runtime,目标机器不用装dotnet)

# 兆芯/海光 x64
dotnet publish -c Release -r linux-x64 --self-contained true /p:PublishAot=true /p:IncludeNativeLibrariesForSelfExtract=true

# 飞腾/鲲鹏 arm64
dotnet publish -c Release -r linux-arm64 --self-contained true /p:PublishAot=true /p:IncludeNativeLibrariesForSelfExtract=true

# 龙芯 LoongArch64(Avalonia12+)
dotnet publish -c Release -r linux-loongarch64 --self-contained true /p:PublishAot=true /p:IncludeNativeLibrariesForSelfExtract=true

✅ 项目避坑清单

  1. 全程不要安装包名带 Avalonia.ProAvalonia.TreeDataGrid 的包,会引入授权校验
  2. 国产Linux优先X11会话,Wayland会有剪贴板/窗口兼容性问题
  3. 打包前确认系统依赖:libgl1-mesa-dev libgbm-dev libinput-dev
  4. NativeAOT编译比较耗内存,编译龙芯包建议至少16G内存