不在Storyboard中播放动画(使用ObjectAnimationUsingKeyFrames)

时间:2012-11-29 21:45:45

标签: windows-phone-7 animation

我无法播放动画故事板。仅显示最后一张图片动画。 可能有什么不对?

我的代码创建动画:

public static class AnimationHelper
    {
        private const string PathImageAnimation = "/LeSommet.ZooSnap.UI.WindowsPhone;component/Resources/Images/Animation/ButtonState{0}.png";

        public static void StartAnimation(UIElement target)
        {
            Storyboard storyboard = new Storyboard();

            ObjectAnimationUsingKeyFrames objectAnimation = new ObjectAnimationUsingKeyFrames();
            objectAnimation.AutoReverse = false;
            objectAnimation.SpeedRatio = 2;
            Storyboard.SetTargetProperty(objectAnimation, new PropertyPath("Source"));
            Storyboard.SetTarget(objectAnimation, target);

            for (int i = 1; i <= 4; i++)
            {
                DiscreteObjectKeyFrame discreteObject = new DiscreteObjectKeyFrame()
                {
                    KeyTime = TimeSpan.FromMilliseconds(1000),
                    Value = new BitmapImage(new Uri(string.Format(PathImageAnimation, i), UriKind.Relative))
                };
                objectAnimation.KeyFrames.Add(discreteObject);
            }
            storyboard.Children.Add(objectAnimation);


            storyboard.Begin();
        }
    }

我的代码图片xaml:

<Image Source="/LeSommet.ZooSnap.UI.WindowsPhone;component/Resources/Images/Animation/ButtonState5.png"                            
                           VerticalAlignment="Center"
                           HorizontalAlignment="Center"
                           Width="110" Height="110" Stretch="Fill"
                           x:Name="imageSquareAnimation">

1 个答案:

答案 0 :(得分:2)

您的所有关键帧都在同一时间吗?

                KeyTime = TimeSpan.FromMilliseconds(1000),

你可以尝试:

                KeyTime = TimeSpan.FromMilliseconds(1000 * i),

尝试学习如何使用Blend - 它有一个出色的编辑器来帮助您创建动画。