2

ImageXAMLで1つのImageコントロールを使用し、1秒間隔でSourceofを他のImageコントロールに交換する単純なアニメーションを実行するのが好きです。

でもそうすると画像がちらつきます。私はこのコードを使用しています(のTickイベントハンドラーでTimer):

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

this.ImageHolder.Source = textureBitmap;

問題はどこにありますか?BitmapImagesをキャッシュする必要がありますか?

ご協力ありがとうございました。

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 に答える