我们如何提高 WPF 动画的性能(100 个动画)?

5
我们有一个应用程序,在运行时生成大约100个动画,它们都添加到一个单独的故事板中然后播放。问题是动画非常缓慢。正在被动画化的对象是形状和样条线,并且在后端进行了大量计算以生成自定义样条线。运行计算机是带有良好图形卡的四核处理器。
你有什么建议可以解决这个问题吗?我们需要将动画拆分成多个故事板或在不同的画布上进行动画处理吗?
谢谢

操作系统版本是什么?有多少个UI元素正在进行动画处理? - Dave Markle
它正在运行Windows 7。在每个动画中,只有一个对象被动画化,但是在故事板中有大约100个动画。 - user180812
动画仅仅是改变对象的位置还是也包括改变大小/形状?如果是前者,那么应该可以对许多对象进行动画处理。如果是后者,那么你会给渲染器带来大量计算,从而导致性能缓慢。 - Phil Wright
1个回答

2

如果没有看到动画和代码,很难知道是什么导致了动画变慢。但我会给你一些通用的建议,可以帮助改善它们。

  1. 如果有非常重的计算,请将计算移到不同的线程中。调度程序线程正在忙于管理用户界面,因此如果您将所有内容放入一个线程中,那肯定会减慢速度。
  2. 重复使用您的样条曲线、形状等,这肯定会帮助您,因为您还将释放应用程序从昂贵的垃圾收集例程中解放出来。实际上,在开始动画之前,请显示一些不同的动画(如时钟等),以创建在开头所需的所有对象。
  3. 探索位图缓存选项并尝试实现它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接