2015-03-31 104 views
0

我最近开始学习WP8.1,目前我正在尝试使用动画。故事板动画不生动

我想要做的是动画像书页一样的启动画面:从后面来,然后,当它覆盖整个屏幕,然后触摸它,继续旋转,就像转动书页一样。 动画的第一部分是确定的,但我不知道为什么第二部分(第二个故事板)不是动画。过了一会儿,这个矩形只需要最后一个位置,而不需要动画(这很丑!)。

这里是我的故事板(注意复杂):

<Storyboard x:Name="EndgameSplashInStoryboard"> 
      <!--<DoubleAnimation Duration="0:0:0.3" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="EndgameSplashGrid" d:IsOptimized="True"/>--> 
      <DoubleAnimation Duration="0:0:0.3" By="70" Storyboard.TargetProperty="(UIElement.Projection).(PlaneProjection.RotationY)" Storyboard.TargetName="EndgameSplashGrid" d:IsOptimized="True"/> 
     </Storyboard> 
     <Storyboard x:Name="EndgameSplashOutStoryboard"> 
      <!--<DoubleAnimation Duration="0:0:0.3" To="0" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="EndgameSplashGrid" d:IsOptimized="True"/>--> 
      <DoubleAnimation Duration="0:0:0.3" By="70" Storyboard.TargetProperty="(UIElement.Projection).(PlaneProjection.RotationY)" Storyboard.TargetName="EndgameSplashGrid" d:IsOptimized="True"/> 
     </Storyboard> 

我评论的不透明度动画,以简化我的动画。 这里是我想动画内容:

<Grid x:Name="EndgameSplashGrid"> 
     <Grid.RowDefinitions> 
      <RowDefinition/> 
      <RowDefinition/> 
     </Grid.RowDefinitions> 

     <Grid.Projection> 
      <PlaneProjection x:Name="EndgameSplashProjection" RotationY="-70" CenterOfRotationX="0"/> 
     </Grid.Projection> 

     <Rectangle x:Name="EndgameSplashRectangle" Grid.RowSpan="2" Fill="{StaticResource PhoneAccentBrush}" Tapped="EndgameSplashRectangle_Tapped"/> 
     <TextBlock x:Name="EndgameSplashText" Grid.Row="0" Text="victoire!" Style="{StaticResource EndgameSplashText}"/> 
     <TextBlock x:Name="EndgameSplashSubtext" Grid.Row="1" TextWrapping="Wrap" Style="{StaticResource EndgameSplashSubtext}" 
        Text="Félicitations, vous avez trouvé le nombre en 7 essais :-)"/> 
    </Grid> 

如果有人能看到为什么会这样,那将是非常有益的:) 谢谢你,有一个愉快的一天!

+0

什么触发故事板?我看不到如何调用这些注释。 – 2015-04-02 14:12:46

回答

0

所以我明白,动画的第一个标准播放,但第二个不是? 如果你把它们放在一个故事板中,并在第二个集BeginTime="0:0:0.3"

编辑:哦,我刚刚看到,它是完全相同的动画,你想要它播放两次?然后,您可以添加属性RepeatBehavior="2x"

如果您想在同一个属性上依次选择两个不同的动画,则可以使用DoubleAnimationUsingKeyFrames

+0

是的,第一个故事板可以很好地播放,而第二个只有不透明的动画。 我试着将它们合并为一个单独的故事板,但是我有一个运行时错误,告诉我我无法对同一个属性进行两次动画制作。 – Jeahel 2015-04-03 11:34:41

+0

@Jeahel:哦,我明白了。我编辑了我的答案,希望它有帮助。 – Robin 2015-04-03 18:49:37

+0

这不完全是。我应该更广泛地解释我想要的。我想要第一个动画翻转一个矩形,使其可见。然后,当它是可见的并且占据整个屏幕时,我想要反转第一个动画以使其再次不可见,但只有当用户触摸矩形时。所以我几乎想要相同的动画,几乎想在第一个之后立即启动它:) – Jeahel 2015-04-07 07:32:18