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

推荐订阅源

GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Securelist
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Google DeepMind News
Google DeepMind News
N
News and Events Feed by Topic
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
T
Threat Research - Cisco Blogs
罗磊的独立博客
IT之家
IT之家
人人都是产品经理
人人都是产品经理
Stack Overflow Blog
Stack Overflow Blog
K
Kaspersky official blog
博客园_首页
T
The Blog of Author Tim Ferriss
T
Tenable Blog
I
InfoQ
Apple Machine Learning Research
Apple Machine Learning Research
T
The Exploit Database - CXSecurity.com
D
Docker
TaoSecurity Blog
TaoSecurity Blog
S
Schneier on Security
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
M
MIT News - Artificial intelligence
U
Unit 42
N
Netflix TechBlog - Medium
L
LINUX DO - 热门话题
C
CERT Recently Published Vulnerability Notes
T
Tailwind CSS Blog
Hacker News: Ask HN
Hacker News: Ask HN
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
美团技术团队
F
Fortinet All Blogs
Last Week in AI
Last Week in AI
AWS News Blog
AWS News Blog
V
V2EX
博客园 - 【当耐特】
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
Schneier on Security
Schneier on Security
腾讯CDC
H
Help Net Security
B
Blog RSS Feed
T
Tor Project blog
P
Privacy & Cybersecurity Law Blog
The Last Watchdog
The Last Watchdog
有赞技术团队
有赞技术团队

博客园 - China Soft

.NET 程序保护实战系列01-流水线架构与保护引擎总览 试官问:你用 AI 编程半年了,那怎么保证 Claude Code 写出来的代码是对的? C#实现控制台多区域输出 园友特惠| 1Panel 企业版 & AI 一体机限量放售,最高直降 5100! 上位机程序发布打包成安装包---Inno Setup 这是一篇学习笔记,分享给大家,如果大家喜欢,也会开启USB的专辑 我问了 AI 一个问题:编码能力贬值后,什么能力值钱? Visual Studio 2026(VS2026) 密钥/激活码 Dddify:给 ASP.NET Core 项目一套轻量、清晰、可落地的 DDD 基础设施 C# ESP32/STM32 轻量 Web 能力库:PicoServer.Nano 高性能百度OCR ONNX Runtime C#实现 别再说 AI 开发就是调接口了!5 种主流模式一次讲清 使用Cursor实现管理系统登录界面的快速开发 在 Avalonia 中编写高性能动画 傻子可懂的 Harness Engineering 入门教程 + 项目实战,一次搞懂 AI 编程工程化! 提升 Text2SQL 准确率 AI/Vibe Coding,本质是软件人工时代向软件工业时代发展 体验优先:十分钟使用 Python+LangChain 玩转阿里通义千问 大模型基础(二):必懂5大基础概念《Token、上下文窗口、Embedding、预训练、微调》 大模型基础(一):什么是LLM? Prompt、Agent、Function Call、Skill、MCP,傻傻分不清楚? 那些喊着AI 要淘汰你的人,正在靠你的焦虑赚大钱! 作为一线研发,我快被全网的 AI 焦虑逼疯了。 Qt QtWebEngine 白屏的解决方案 .NET 高级开发 | C# 中的动态代码:反射、EMIT、表达式树、Roslyn、Source Generators 大模型看大模型:推理Token的能耗用电量比对 WorkBuddy:从“我是谁”到“帮我干活” .NET 高级开发 | 开发 .NET 诊断工具、链路追踪原理 Prompt 焚诀——一个模板,终结你和 AI 的所有沟通问题 [项目]涉案资产信息化管理平台(山东某执法单位定制开发) 大模型RAG实战,从被骂不靠谱到成为部门MVP,这是我的踩坑全记录 白帽子为什么几乎都绕不开 httpx:一款 HTTP 资产探测工具的技术价值 从Prompt工程到Skill工程:Agent Skills开放标准彻底改变了AI协作方式 MAUI项目在Android平台通过U盘实现软件更新 微软竟然出了免费的 AI 应用开发课?!我已经学上了 一文彻底搞懂 OpenClaw 的架构设计与运行原理(万字图文) AI到底聪明在哪——从手机人脸识别说起 硬核科普:为何小米任天堂封杀 Root?揭秘操作系统从启动到“夺权”的底层游戏
都是微软亲儿子,WPF凭啥干不掉WinForm?这3个场景说明白了
China Soft · 2026-04-15 · via 博客园 - China Soft

https://www.cnblogs.com/shenchuanchao/p/19832001/wpf-vs-winform-why-not-replaced-3-scenarios

大家好,我是码农刚子。

前两天有个刚入行的兄弟问我:“现在学桌面开发,是学WinForm还是WPF?我看网上也有人问都是基于.NET平台,WPF能取代Winform吗?”

我听完笑了笑。这个问题吧,就跟“C#能不能取代Java”一样,聊起来没完没了。

今天我就跟你掏心窝子聊聊这个话题:WPF到底能不能取代WinForm?

不整那些虚的,就说说我这六年用下来的真实感受。


先说说这俩货是啥来头

WinForm,2002年出生,跟.NET Framework 1.0一起出来的。那会儿我刚接触编程,觉得这玩意儿太爽了——拖拖控件,双击写代码,一个计算器分分钟搞定。简单粗暴,像开手动挡的面包车,皮实耐造。

WPF,2006年出生,主打一个“炫酷”。它用XAML写界面,界面和逻辑彻底分离,还能搞出各种花里胡哨的动画、样式、自定义控件。像自动挡的跑车,看着帅,但上手门槛高。

俩都是亲儿子,一个老大,一个老二。问题是,老二能把老大干掉吗?


我先说结论:取代不了,但各干各的活儿

这话不是我瞎说的。你看看现在:

  • 很多工业软件、医疗设备、企业内部工具,还是WinForm。为啥?稳定、轻量、开发快。
  • 但你要是做那种界面花哨的客户端,比如股票交易软件、设计工具、音视频编辑软件,WPF更合适。

说白了,WinForm是“能用就行”,WPF是“好看重要”


场景一:WinForm依然是王者

我给你举几个例子,这些场景你用WPF就是跟自己过不去。

1. 企业内的小工具

比如人事部要一个小程序,查查员工信息、导出个Excel。WinForm拖拖控件,半小时搞定。WPF呢?你先得搞清楚数据绑定、MVVM模式、命令绑定……搞完半天过去了。

2. 工控、医疗、硬件交互

很多PLC、扫码枪、医疗设备的SDK,给的示例代码全是WinForm的。你用WPF,可能连控件都绑定不上。而且这些设备对稳定性要求极高,WinForm跑个三五年不重启都没事,WPF那一套渲染层万一崩了呢?

3. 老项目维护

这就不用说了。多少公司的核心业务系统还是WinForm写的,你不能说“我们要用新技术”就全推倒重来。老板第一个不同意。

WinForm的优势

  • 学习曲线平缓,新手上手快
  • 控件丰富,第三方控件也多
  • 性能好,对机器配置要求低
  • 维护方便,代码直观

场景二:WPF的优势越来越明显

但是,你要说WinForm永远牛逼,那也不对。WPF这些年也证明了自己。

1. 界面要做得好看了

WinForm做界面,想搞个圆角按钮、渐变背景、动画效果?得自己画,麻烦得要死。WPF呢,写几行XAML,样式一改,立马高大上。

现在的用户都被手机App惯坏了,你桌面软件要是还是灰头土脸的,人家点开就想关。

2. 需要数据驱动

WPF天生就是MVVM模式,界面和逻辑分离。你做复杂业务逻辑的时候,前后端可以分开开发,测试也方便。WinForm那种Code-Behind,逻辑和界面搅在一起,项目一大就成一锅粥。

3. 需要高DPI适配

现在都是4K、8K屏了,WinForm在高分屏上糊得一批。WPF基于矢量渲染,怎么缩放都清晰。

WPF的优势

  • 界面漂亮,样式灵活
  • 数据绑定强大,适合复杂交互
  • 硬件加速,图形性能好
  • 分辨率自适应

场景三:还有更现代的选项

说到这里,你可能要问:那微软现在主推啥?

其实微软现在主推的是 WinUI 3 和 MAUI

  • WinUI 3:Windows 11的亲儿子,风格跟系统一致,但还在成长中,第三方控件少。
  • MAUI:跨平台,一套代码跑Windows、Android、iOS,但桌面部分目前还是WinForm/WPF的底子。

所以你看,微软也没说要彻底抛弃WinForm和WPF,只是给了更多选择。


刚子给你掏心窝子的建议

如果你是初学者

  • 时间充裕,建议先学WinForm,快速建立信心,搞个小东西出来。
  • 然后再学WPF,理解MVVM和数据绑定,这对你以后学前端、学移动开发都有帮助。

如果你要选技术做项目

  • 工具类、内部系统、工期紧 → WinForm
  • 面向客户的、界面要求高、复杂度高 → WPF
  • 追求最新、打算长期维护 → 可以考虑WinUI 3,但得接受趟坑

如果你是老项目维护者

  • 别整天想着重构到WPF,成本太高。除非老板给钱、给时间。

最后说句实在话

WPF不会取代WinForm,就像WinForm当年也没取代MFC一样。

每种技术都有自己的舒适区。WinForm在快速开发、稳定可靠这块,依然能打。WPF在界面美观、复杂交互这块,当仁不让。

微软也不会砍掉任何一个,毕竟那么多企业项目跑在上面,砍了就是自掘坟墓。

所以别纠结谁取代谁,选合适的工具干合适的活儿,这才是老司机的思维。

如果你觉得这篇文章有用,点个赞、转给还在纠结选WinForm还是WPF的兄弟

我是刚子,一个还在写代码的.NET老程序员。咱们下回见!