我必须为Windows Phone 8.1应用程序创建动画。我想更改ImageSource
的{{1}}属性,以便在应用启动时显示动画效果。
我将此示例用作模型:http://www.codeproject.com/Tips/823622/Images-Animation-By-Using-Story-Board-in-Windows-P
在我的代码中,80幅图像的动画持续8秒,但屏幕保持黑色8秒,然后只显示最后一帧。
Page.Background
此代码是从private void setupStoryboard()
{
storyboard = new Storyboard();
var animation = new ObjectAnimationUsingKeyFrames();
Storyboard.SetTarget(animation, BackgroundBrush);
Storyboard.SetTargetProperty(animation, "ImageSource");
storyboard.Children.Add(animation);
for (int i = 0; i <= 80; i++)
{
var keyframe = new DiscreteObjectKeyFrame
{
KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(100 * i)), //Time Interval
Value = String.Format("ms-appx:///Assets/Animation/splash{0:D2}.png", i) //Source of images
};
animation.KeyFrames.Add(keyframe);
}
Resources.Add("Storyboard", storyboard); //Add story board to resources
}
调用的,我有一个按钮可以调用OnNavigatedTo
此问题出现在模拟器和设备上。
更新:问题仍然存在,间隔时间间隔较长(1000毫秒),图像较小(30KB jpg而不是240KB png)
更新: storyboard.Begin();
代码
更新:仍然没有解决,但我设法获得了预期的效果。我创建了一个DispatcherTimer来手动更改图像。不幸的是,这会产生令人讨厌的闪烁效果。我不得不在第一个上面添加第二个相同的图像,并在两个之间交替:imageA加载source1,imageB加载source2,imageA加载source3,ImageB加载source4 ...
使用胶带完成任务。