跨页面同步动画

时间:2013-03-29 15:59:01

标签: c# xaml animation windows-phone-8

我目前正在构建一个在所有页面上使用简单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中,将新页面动画设置为存储的时间跨度并从我们从哪里开始留下它。它在某种程度上有效,但有明显的口吃。

我已经考虑过在自己的线程上运行动画,但我不知道这是否可行,如果可行,该怎么做。

1 个答案:

答案 0 :(得分:0)

最好的方法是将母版页拆分为不同的部分。保持控件的位置,以及用户导航时放置新控件的另一个控件。即使你有一个全局变量你用动画的当前状态设置,到新页面加载时,除非你有一个SLA设置,可能需要几秒钟,当前动画将是不同的,如果你想给用户一个平稳的感觉。

更新:

这样的事情:

enter image description here

您将新内容加载到“新用户控件”窗格中。