如果你写过 C#,你一定绕不开桌面开发这个选项。

十几年了,.NET 桌面框架的牌桌上坐着的还是那几位老面孔:WinForms、WPF,以及近两年声量越来越大的 Avalonia UI

有人说 WinForms 该退休了,有人说 WPF 被微软边缘化了,也有人说 Avalonia 才是未来。真相到底是啥?今天不聊源码,不贴配置,就聊聊这三个框架到底适合什么人、干什么事


WinForms:你大爷还是你大爷

不管你服不服,WinForms 依然是很多工厂车间、医院系统、财务软件里的隐形霸主。

它的优势就一个字:。拖拖拽拽就能出一个能用的界面,对 Windows 系统底层的兼容性好得离谱。很多工控机上跑的 XP 系统,除了 WinForms 没第二个选择。

但问题也明显:UI 想做得好看太难了,4K 屏幕缩放惨不忍睹,跨平台更是想都别想。

它不会死,但它只活在 Windows 世界里,而且越来越像一件传家宝——好用,但不好意思拿出来见人。


WPF:Windows 平台的最后荣光

WPF 是微软给专业桌面应用开发者的一封情书。

XAML 写界面、MVVM 分离逻辑、数据绑定极其优雅——这套范式直到今天依然是桌面开发的最佳实践之一。你想要多炫的动画、多复杂的交互,WPF 都能给你。

但它的痛点也刺痛了很多人:它永远长不出 Windows 的围墙

你的老板说一句“我们也支持一下 Mac 用户吧”,WPF 开发者就只能沉默。要么重写,要么上虚拟机,要么用那些半吊子的跨平台方案。

不是 WPF 不好,是时代变了。今天的用户要的不只是 Windows。


Avalonia UI:一个框架,所有平台

这才是今天的重头戏。

Avalonia UI 干了一件微软一直没干成的事:用 WPF 的开发方式,写出能跑在 Windows、macOS、Linux 上的应用。最新的 12.0 版本甚至把 iOS、Android 和 WebAssembly 也一并打包带走了。

对 WPF 开发者来说,这就是无缝衔接。你会的 XAML 语法、你熟悉的数据绑定、你依赖的 MVVM 模式,在 Avalonia 里几乎原样保留。有公司甚至通过 Avalonia XPF 把几百万行的老 WPF 项目直接搬到了 Mac 上跑。

而且它是 MIT 开源协议。你拿去商用、闭源、卖钱,一分钱不用交。

更让人安心的是,施耐德电气、Unity、JetBrains 这些巨头已经在生产环境里用上了。连微软自己的 MAUI 跨平台方案,都选择了 Avalonia 来补齐 Linux 和 WebAssembly 的短板。

官网和上手有多简单?

如果你有点动心,直接去 avaloniaui.net 看一眼。首页明晃晃地写着:支持 Windows、macOS、Linux、iOS、Android、WebAssembly,2025 年 Avalonia 项目的构建次数超过了 1.22 亿次,用它的项目有 210 万个。文档有完整中文版,新手跟着走一遍就能跑起来。

写 Avalonia 的体验,对 WPF 玩家来说不是零门槛,但绝对是成本最低的一条跨平台迁移路径。

装好 .NET SDK,执行:

dotnet new install Avalonia.Templates
dotnet new avalonia.mvvm -o MyApp

一个项目骨架很快就能起来。打开项目,第一眼的感觉是——这目录结构我见过。

打开 Views 目录里的 .axaml 文件,你会发现熟悉的味道基本都在:基础的 UI 描述方式和 WPF 高度一致。像 <TextBlock Text="{Binding Name}"/> 这种简单绑定可以直接照写,GridStackPanelDockPanel 这些布局容器的使用方式也几乎不变。

但该有的差异,还是要有心理预期。

最明显的是样式系统。Avalonia UI 用的是类似 CSS 选择器的机制来匹配控件,比 WPF 的隐式样式更灵活,但写法和思路都不一样,需要适应一下。另外像 RelativeSourceDataTemplate 里的绑定表达式,也会有一些细节差异;再往下走到文件系统、系统 API 这些地方,因为涉及跨平台,通常要多做一层抽象处理。

所以更准确的说法是:
👉 一个 WPF 老手,用 Avalonia 搭一个中等复杂度的界面,半天跑起来没问题;
👉 但想把样式体系、控件定制、平台差异这些东西吃透,还是得花点时间认真过一遍文档。

好在文档本身写得还算清晰,整体踩坑成本比当年从 WinForms 切到 WPF 低得多——而且这次,你写的应用能跑出 Windows 了。


WinForms、WPF、Avalonia UI 核心区别一览

对比项 WinForms WPF Avalonia UI
跑在哪儿 只有 Windows 只有 Windows Windows、macOS、Linux、iOS、Android、Web
怎么写界面 拖控件 / C# 代码 XAML XAML(跟 WPF 基本一样)
适合谁 工控机、老系统、求稳 Windows 专业应用、求好看 新项目、跨平台、WPF 老手不想重学
开源吗 部分 部分 MIT 全开源,商用随便用

所以,结论是什么?

  • 如果你在给一家工厂写设备上位机,WinForms 依然是最省心的选择。

  • 如果你确定产品这辈子只服务 Windows 用户,WPF 依然能给你最好的 Windows 原生体验。

  • 但如果你今天新起一个项目,或者想让你的老 WPF 应用多活几个平台——Avalonia UI 就是那个让你赢在未来的选择

WPF 没死,WinForms 也没死。

但桌面开发的未来,已经不在 Windows 一棵树上吊着了。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐