优化画布动画

问题描述

| 在我的XAML UI中,我有4个画布面板。 一次只有一个可见,其他的则崩溃了。 我正在使用transform在显示画布时具有水平滑动效果我有两个选择可以做到这一点: 选项1: 当我想转到画布时,我将所有其他3个画布移出屏幕,因为我不知道当前哪个画布处于活动状态。这样做的好处是我只有4个动画,每个画布一个。 选项2: 我定义了从另一个特定画布转到特定画布的新动画。在这种情况下,我不需要移动所有三个画布,而只需移动一个。但是然后我需要创建12个动画,每个画布3个。 我认为选项1是内存有效的,因为那里只有4个动画实例,但是有cpu性能开销。 选项2是cpu有效的,但是由于12个动画实例而导致内存开销。 我应该选择哪个选项? 谢谢, 杜沙尔     

解决方法

只是出于兴趣,您是否考虑过使用
VisualStateManager
?通过通过样式定义\'OnScreen \'和\'OffScreen \'
VisualState
,并将其应用于每个Canvas,您只需要编码一次,让
VisualStateManager
通过使用
VisualStateManager.GoToState()
调用合适的动画即可。意味着您不需要12个动画实例,并且每个状态更改都不需要调用4个动画。两全其美? 如果您需要更多信息,我可以很快提供一些示例代码。     ,您似乎已经很好地考虑了每种方法的含义。不幸的是,只有您可以回答您提出的问题。如果内存与应用程序有关,则应选择选项1。但是,如果应用程序对CPU敏感,则应选择选项2。 我知道这基本上是一个无法解决的问题,但是与性能一样,您应该对这两种方法进行概要分析和测试。您可能会发现两种方法的相对优缺点都可以忽略不计,在这种情况下,您应该选择更可维护且更容易编码的任何选项(可能是选项1):-)