2016-12-21 9 views
0

私は、連続したアニメーションで5つのイメージ(png形式)を保持しようとしています。 連続して上下に動いているような感じが違う同じイメージがあります。以下のコードでは、ポップアップとして「good_job.png」という画像を1つだけ使用していますが、上下に動きを示すために5つの異なる画像を使用する方法はあります。連続したアニメーションで5つのイメージ(png形式)を保持しようとしています

XAML

<RelativePanel x:Name="contentPanel" Grid.Row="1"> 
    <Canvas RelativePanel.AlignTopWithPanel="True"> 
        <Popup x:Name ="ppup" IsOpen = "False" IsLightDismissEnabled = "True" 
          Width="420" VerticalAlignment="Top" 
          > 
         <Image Source = "Assets/good_job.png" Canvas.ZIndex="1" Width="420" /> 
        </Popup> 
        <Popup x:Name ="ppup1" IsOpen = "False" IsLightDismissEnabled = "True" 
          Width="320" VerticalAlignment="Center"> 
         <Image Source = "Assets/wrong_ans.png" Canvas.ZIndex="1" Width="420" /> 
        </Popup> 
       </Canvas> 
</RelativePanel> 
<Image x:Name="image1" Source="Assets/LearnColor/Object/ob_0_0.png" Height="150" Width="160" RelativePanel.AlignLeftWithPanel="True" Margin="30,40,0,0" Tapped="image1Tap" d:LayoutOverrides="Width, LeftMargin,       RightMargin" /> 

C#コード

if ((image1.Source as BitmapImage).UriSource == new Uri("ms-appx:///Assets/LearnColor/Object/ob_0_0.png", UriKind.Absolute) && (objNameWritten1.Text == "Banana")) 
{ 
    ppup.Height = Window.Current.Bounds.Height; 
    ppup.IsOpen = true; 
    mediaElement1.Source = new Uri("ms-appx:///Audio/wow good job.mp3"); 
    mediaElement1.AutoPlay = true; 

} 
+0

インターバルで 'ImageSource'を更新する' Timer'はどうでしょうか? – EpicSam

+0

これも受け入れられますが、それを達成する方法はあります。 – anuj

+0

'varタイマー=新しいSystem.Timers.Timer(100); timer.Elapsed + =()=> image.ItemsSource = NextImage(); timer.Start(); ' – EpicSam

答えて

0

注:これはテストされていないとすぐに一緒に投げている答え。私はコメントに尋ねられたので私はそれを提出した。

最初に画像をループする方法を作成します。

private int CurrentImageId = 0; 
private List<string> Images = new List<string>() { "image1", "image2", "image3", "image4", "image5" }; 

private string NextImage() { 
    CurrentImageId = (CurrentImageId + 1) % 5; 
    return Images[CurrentImageId]; 
} 

次に、タイマを使用して、ImageSourceを間隔を置いて再設定します。

var timer = new Timer(100); 
timer.Elapsed += (sender, args) => Images.ImageSource = NextImage(); 
timer.Start(); 
+1

ハードコードされた5の代わりに、Images.Countを使用できます。 – CSharpie

関連する問題