动画性能比对:WPF / WinUI3 / WebView2

丝滑流畅的高性能动画,对于做一个具有高级感体验的应用来说至关重要。

我最开始是想比对WPF在.Net Framework 462 和 .Net8.0之间进行比对,我原本希望WPF在.Net8.0 UI表现上有肉眼可见的进步,但是比对下来之后,在高压力的UI动画方面基本上没变化,因此暂时不讨论WPF在8.0上面的表现,跳过。我们暂时认为WPF在任何框架上的表现都是类似的;

另外,在嵌入webview2浏览器时,是嵌入到.Net Framework462 还是嵌入到 WinUI3 我也分别进行了比对,但是它们的表现也基本上是看不出来差异,所以这里我们就只区分 WPF / WinUI3 / WebView2 这三种框架。

测试主机的参数如下:

处理器 Intel(R) Core(TM) i9-14900HX 2.20 GHz

机带 RAM 32.0 GB (31.7 GB 可用)

系统类型 64 位操作系统, 基于 x64 的处理器

版本 Windows 11 家庭中文版

版本号 24H2

操作系统版本 26100.3775


基础动画 - 单次

对200张图片进行旋转动画:

WPF: 卡顿的快要动弹不了了,惨不忍睹,体验极差:

WebView2: 丝滑流畅,用平和的减速表现柔和,但是实际帧率一般:

WinUI3: 绝对的硬实力,快得都要看见残影了:


基础动画 - 多次

连续中断地触发多次动画:

WebView2:

WinUI3:

WebView2 和 WinUI3都表现流畅,但是中间有个小插曲,WebView2在二次、三次触发的时候没有清空之前旧的元素,会导致相当卡顿;但是WinUI3完全不受影响。整体来说WinUI3仍然表现更优。


粒子动画 - 3000粒子

WPF:勉强能跑动的感觉,基本带不起来粒子动画:

WebView2: 轻松胜任,丝滑流畅,甚至极其流畅:

WinUI3:流畅,但是貌似不如WebView2更丝滑,差强人意:


粒子动画 - 30000粒子

WPF:完全跑不动了:

WebView2: 像是结冰的感觉,缓慢,很吃力:

WinUI3:仍然极其流畅,与3000粒子的效果相比,由于粒子数量更多,反而看到速度有更快的错觉,性能完全没有受到影响(但是总感觉它的形态缺少一点柔和美,太直接了):


结论

如果 "体验感" 作为第一考量维度,那么 WinUI3是首选,WebView2基本可以胜任,WPF几乎不可胜任。

相关推荐
2501_915918413 小时前
iOS mobileprovision 描述文件管理,新建、下载和内容查看
android·ios·小程序·https·uni-app·iphone·webview
00后程序员张3 小时前
iOS 应用程序使用历史记录和耗能记录怎么查?
android·ios·小程序·https·uni-app·iphone·webview
He BianGu5 小时前
【笔记】在WPF中GiveFeedbackEventHandler的功能和应用场景详细介绍
笔记·wpf
就是有点傻5 小时前
WPF自定义控件-水晶球
wpf
He BianGu6 小时前
【笔记】在WPF中QueryContinueDragEvent的详细介绍
笔记·wpf
He BianGu6 小时前
【笔记】在WPF中QueryCursor事件的功能和应用场景详细介绍
笔记·wpf
He BianGu6 小时前
【笔记】在WPF中CommandManager的功能和应用场景详细介绍
笔记·wpf
关关长语7 小时前
HandyControl中Button图标展示多色路径
c#·.net·wpf·handycontrol
xianzi20208 小时前
TreeSize:从用户体验角度解析这款老牌磁盘工具
用户体验·界面设计·磁盘工具·易用性
sinat_333518878 小时前
PDF24 Tools:从用户体验角度解析这款免费PDF工具标签
用户体验·免费软件·界面设计·pdf工具·易用性