Xaml 动画只是第一次工作

Xaml 动画只是第一次工作,xaml,animation,windows-phone-8,blend,transitions,Xaml,Animation,Windows Phone 8,Blend,Transitions,我想在一个物体上做一个旋转。。。。问题是,动画只是第一次工作!它应该在我每次点击对象时都能工作 代码如下: <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="VisualStateGroup"> <VisualStateGroup.Transitions> <VisualTransition Genera

我想在一个物体上做一个旋转。。。。问题是,动画只是第一次工作!它应该在我每次点击对象时都能工作

代码如下:

<VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="VisualStateGroup">
            <VisualStateGroup.Transitions>
                <VisualTransition GeneratedDuration="0:0:5">
                    <VisualTransition.GeneratedEasingFunction>
                        <CubicEase EasingMode="EaseOut"/>
                    </VisualTransition.GeneratedEasingFunction>
                </VisualTransition>
                <VisualTransition GeneratedDuration="0:0:5" To="Gira" x:Name="VT2">
                    <VisualTransition.GeneratedEasingFunction>
                        <CubicEase EasingMode="EaseOut"/>
                    </VisualTransition.GeneratedEasingFunction>
                </VisualTransition>
                <VisualTransition From="Gira" GeneratedDuration="0:0:5" x:Name="VT1">
                    <VisualTransition.GeneratedEasingFunction>
                        <CubicEase EasingMode="EaseOut"/>
                    </VisualTransition.GeneratedEasingFunction>
                </VisualTransition>
            </VisualStateGroup.Transitions>
            <VisualState x:Name="Gira">
                <Storyboard>
                    <DoubleAnimation Duration="0" To="45" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)"
                                     Storyboard.TargetName="image" d:IsOptimized="True" RepeatBehavior="Forever" />
                </Storyboard>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
第一次它工作,从第二次我看到的只是没有动画的最终结果。。。 有人能帮我吗


谢谢…

您正在将其设置为一个状态,并且它将保持该状态。取而代之的是你的故事板,然后触发它,而不是让它处于一个不存在的VisualState中。更像

<Object.Resources>
  <Storyboard x:Name="Gira">
    <DoubleAnimation Duration="0" To="45" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)"
                                     Storyboard.TargetName="image" d:IsOptimized="True" RepeatBehavior="Forever" />
  </Storyboard>
</Object.Resources>

然后发射它

<i:Interaction.Triggers>
            <i:EventTrigger EventName="Tap">
                <ec:ControlStoryboardAction Storyboard="{StaticResource Gira}"/>
                <!--<ec:GoToStateAction x:Name="StateGiraTap" StateName="Gira"/>-->
            </i:EventTrigger>
</i:Interaction.Triggers>


希望这能有所帮助。

尝试定义From属性,或者在SB上定义AutoReverse。否:(也许我需要了解如何以编程方式运行故事板
<Object.Resources>
  <Storyboard x:Name="Gira">
    <DoubleAnimation Duration="0" To="45" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)"
                                     Storyboard.TargetName="image" d:IsOptimized="True" RepeatBehavior="Forever" />
  </Storyboard>
</Object.Resources>
<i:Interaction.Triggers>
            <i:EventTrigger EventName="Tap">
                <ec:ControlStoryboardAction Storyboard="{StaticResource Gira}"/>
                <!--<ec:GoToStateAction x:Name="StateGiraTap" StateName="Gira"/>-->
            </i:EventTrigger>
</i:Interaction.Triggers>