我目前正在构建一个应用程序,该应用程序在所有页面上使用一个简单的 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 中,将新页面动画设置为存储的时间跨度并从我们离开的位置开始。它在一定程度上有效,但有明显的口吃。
我考虑过在它自己的线程上运行动画,但我不知道这是否可行,如果可以,该怎么做。