0

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

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

4

1 回答 1

0

最好的方法是将母版页分成不同的部分。一个是保留该控件的地方,另一个是您在用户导航时放置新控件的地方。即使您使用动画的当前状态设置了一个全局变量,当新页面加载时,除非您设置了 SLA,否则可能需要几秒钟,如果您想要给用户一种流畅的感觉。

更新:

像这样的东西:

在此处输入图像描述

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

于 2013-03-29T16:06:42.320 回答