在页面加载的事件上触发的混合动画过早发生

时间:2014-04-22 00:30:41

标签: xaml windows-runtime blend

我遇到问题,因为我在应用程序启动时尝试启动故事板动画。我有快速的故事板动画(0.5秒),通过Blend中的Loaded附加到主页' EventTriggerBehavior事件,它启动故事板动画。但几乎每次应用程序(隐藏启动画面后)动画都已完成。

这是我的XAML(适用于WP8.1;但同样适用于8.1商店应用程序):

<Page
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:OnloadAnimation"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:Interactivity="using:Microsoft.Xaml.Interactivity" xmlns:Core="using:Microsoft.Xaml.Interactions.Core" xmlns:Media="using:Microsoft.Xaml.Interactions.Media"
    x:Class="OnloadAnimation.MainPage"
    mc:Ignorable="d">
    <Page.Resources>
        <Storyboard x:Name="OnloadStoryboard">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="rectangle">
                <EasingDoubleKeyFrame KeyTime="0" Value="0">
                    <EasingDoubleKeyFrame.EasingFunction>
                        <ExponentialEase EasingMode="EaseInOut" Exponent="5"/>
                    </EasingDoubleKeyFrame.EasingFunction>
                </EasingDoubleKeyFrame>
                <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="367.164">
                    <EasingDoubleKeyFrame.EasingFunction>
                        <ExponentialEase EasingMode="EaseInOut" Exponent="5"/>
                    </EasingDoubleKeyFrame.EasingFunction>
                </EasingDoubleKeyFrame>
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)" Storyboard.TargetName="rectangle">
                <EasingDoubleKeyFrame KeyTime="0" Value="0">
                    <EasingDoubleKeyFrame.EasingFunction>
                        <ExponentialEase EasingMode="EaseInOut" Exponent="5"/>
                    </EasingDoubleKeyFrame.EasingFunction>
                </EasingDoubleKeyFrame>
                <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="400">
                    <EasingDoubleKeyFrame.EasingFunction>
                        <ExponentialEase EasingMode="EaseInOut" Exponent="5"/>
                    </EasingDoubleKeyFrame.EasingFunction>
                </EasingDoubleKeyFrame>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </Page.Resources>
    <Interactivity:Interaction.Behaviors>
        <Core:EventTriggerBehavior EventName="Loaded">
            <Media:ControlStoryboardAction Storyboard="{StaticResource OnloadStoryboard}"/>
        </Core:EventTriggerBehavior>
    </Interactivity:Interaction.Behaviors>

    <Grid Background="#FF1D1D1D">
        <Rectangle x:Name="rectangle" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="205" Stroke="Black" VerticalAlignment="Top" Width="200" RenderTransformOrigin="0.5,0.5">
            <Interactivity:Interaction.Behaviors>
                <Core:EventTriggerBehavior EventName="PointerPressed">
                    <Media:ControlStoryboardAction Storyboard="{StaticResource OnloadStoryboard}"/>
                </Core:EventTriggerBehavior>
            </Interactivity:Interaction.Behaviors>
            <Rectangle.RenderTransform>
                <CompositeTransform/>
            </Rectangle.RenderTransform>
        </Rectangle>

    </Grid>
</Page>

此处还有full solution

0 个答案:

没有答案