动画性能比对: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几乎不可胜任。

相关推荐
samble5 小时前
从零搭建半导体设备上位机(四):单实例、启动流程与配置文件,App 里那 526 行到底在干什么
wpf·配置文件·单实例
2501_9160088912 小时前
iPhone 设备信息查看,用 KeyMob 看型号、序列号、电池健康和 UDID
android·ios·小程序·https·uni-app·iphone·webview
浪扼飞舟12 小时前
WPF(控件的继承树、内容控件、布局控件)
wpf
avi91114 天前
电影开源Jevdo - 源码介绍(vue版)没有android 和 没有wpf
android·wpf·框架·数据爬虫·meego·电影管理
羲云网络4 天前
页面能打开,用户却走不通:AI 子站上线前该补的那次走查
dns·用户体验·ai工具·网站运维·acedatacloud
2601_967979124 天前
详细解析什么是原型开发
交互设计·墨刀·用户体验·原型开发·用户测试
吾与谁归in4 天前
C#脚本工具,支持智能提示自动补全(WPF + Roslyn + AvalonEdit)
开发语言·c#·wpf
昂好的day5 天前
WPF 从零入门(上):WPF 是什么、XAML 语法、布局与样式全解
开发语言·c#·wpf
影寂ldy5 天前
WPF导航窗体+Page页面跳转 知识点整理
wpf
He BianGu5 天前
【WPF-Control教程】IOC 依赖注入
c#·wpf·wpf-control