0

我正在开发一个 Windows Phone 8 应用程序。我正在使用情节提要为一系列图像制作动画。它工作正常,但我想在动画完成前一秒调用特定方法。我正在使用这段代码:有没有办法做我想做的事?

var storyboard12 = new Storyboard
        {
            // RepeatBehavior = RepeatBehavior.Forever
        };
        var animation = new ObjectAnimationUsingKeyFrames();
        Storyboard.SetTarget(animation, animationImage);
        Storyboard.SetTargetProperty(animation, new PropertyPath("Source"));
        storyboard12.Children.Add(animation);
        for (int i = 1; i <=16; i++)
        {
            var keyframe = new DiscreteObjectKeyFrame
            {
                KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(300*i)),
                Value = String.Format("/Images+Audio/images/animation images/2_Driving-a-car/Drive_background3 ({0}).png", i)
            };
            animation.KeyFrames.Add(keyframe);
        }

        DispatcherTimer timer11 = new DispatcherTimer();
        timer11.Interval = TimeSpan.FromSeconds(4.1);
        timer11.Tick += timer11_Tick;
        timer11.Start();


        storyboard12.Begin();
        storyboard12.Completed += storyboard12_Completed;
    }

    void timer11_Tick(object sender, EventArgs e)
    {
        var timer = (DispatcherTimer)sender;
        timer.Stop();
        changeBackgroundImage3();
    }
4

1 回答 1

1

您可以使用另一个故事板,这将改变您的控件的背景。这种方式更适合性能原因。并且 DispatcherTimer Tick 事件不会在设置间隔后 100% 触发,它可能会在 4.1 之后触发,如果它对您很重要,那么这是使用情节提要更改背景的第二个原因。

于 2013-06-04T16:47:50.037 回答