2

我喜欢使用 XAML 中的一个 Image 控件制作简单的动画,并Image以 1 秒的间隔将 Source of 交换到另一个。

但是当我这样做时,图像会闪烁。我使用此代码(在Tick事件处理程序中Timer):

Uri uri = new Uri("ms-appx:/Sprites/Running/" + y++ + ".png", 
              UriKind.RelativeOrAbsolute);
BitmapImage textureBitmap = new BitmapImage(uri);

this.ImageHolder.Source = textureBitmap;

问题可能出在哪里?我应该缓存位图图像吗?

谢谢您的帮助。

4

1 回答 1

1

尝试在您的 xaml中声明StoryBoard :

    <Storyboard>
        <ObjectAnimationUsingKeyFrames BeginTime="0:0:0" 
            Storyboard.TargetName="ImageHolder" Storyboard.TargetProperty="Source">
            <DiscreteObjectKeyFrame KeyTime="0:0:0" 
               Value="{Binding Source={StaticResource Frame1Image}"/>
            <DiscreteObjectKeyFrame KeyTime="0:0:1" 
               Value="{Binding Source={StaticResource Frame2Image}"/>
            <DiscreteObjectKeyFrame KeyTime="0:0:2" 
               Value="{Binding Source={StaticResource Frame3Image}"/>
            <!-- etc -->
        </ObjectAnimationUsingKeyFrames>
    </Storyboard>

因此,您必须将精灵添加到静态资源,并运行 StoryBoard。

于 2012-10-17T09:18:43.717 回答