我目前正在构建一个在所有页面上使用简单xaml动画的应用程序。
这是动画的xaml
<Storyboard x:Name="raysSpin">
<DoubleAnimation Duration="0:0:6.0" To="360" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="sunRays" RepeatBehavior="Forever"/>
</Storyboard>
以上动画位于应用中的所有页面上。现在,当用户导航到下一页时,我需要在所有页面上保持此动画同步,这样看起来用户没有进入不同的页面。无论时间轴在何处,动画都需要在新页面动画上设置该位置,并从我们中断的位置开始。
是否有人知道或有任何关于如何以有效方式执行此操作的想法?
我的第一个也是唯一的想法是将动画的时间跨度存储到存储在app.xaml.cs中的全局变量中,然后存储在每个页面的onNativgatedTo中,将新页面动画设置为存储的时间跨度并从我们从哪里开始留下它。它在某种程度上有效,但有明显的口吃。
我已经考虑过在自己的线程上运行动画,但我不知道这是否可行,如果可行,该怎么做。
答案 0 :(得分:0)
最好的方法是将母版页拆分为不同的部分。保持控件的位置,以及用户导航时放置新控件的另一个控件。即使你有一个全局变量你用动画的当前状态设置,到新页面加载时,除非你有一个SLA设置,可能需要几秒钟,当前动画将是不同的,如果你想给用户一个平稳的感觉。
更新:
这样的事情:
您将新内容加载到“新用户控件”窗格中。