我目前正在使用VisualStudio(WPF應用程序)中的C#/ Xaml爲我的第一個項目創建一個遊戲。爲了簡化我的問題,我現在有一個按鈕在窗口中的某個位置顯示一個隨機圖像(我放置了4張圖像,全部摺疊,然後這些代碼會隨機出現一個圖像,然後消失)。C#XAML - For循環只顯示最後一次迭代,沒有任何介於
我想要一個for循環遍歷代碼並顯示一個隨機圖像,等待一秒鐘,然後消失並彈出另一個圖像,而不是單擊按鈕。我希望這會自動發生一定的週期。
的我的當前代碼段是:
private void Button_Click(object sender, RoutedEventArgs e)
{
for (int j = 0; j < 5; j++)
{
Food1.Visibility = Visibility.Collapsed;
Food2.Visibility = Visibility.Collapsed;
Food3.Visibility = Visibility.Collapsed;
Food4.Visibility = Visibility.Collapsed;
int ImageToDisplay = RandomFood.Next(0, 4);
if (ImageToDisplay == 0)
{
Food1.Visibility = Visibility.Visible;
}
else if (ImageToDisplay == 1)
{
Food2.Visibility = Visibility.Visible;
}
else if (ImageToDisplay == 2)
{
Food3.Visibility = Visibility.Visible;
}
else if (ImageToDisplay == 3)
{
Food4.Visibility = Visibility.Visible;
}
Thread.Sleep(1000);
}
}
當我執行我的代碼,它凍結5秒,該窗口是空的,那麼只有在5秒後顯示的最後的圖像。如何讓它顯示不同的圖像,然後每秒消失5秒?
它凍結,因爲你告訴它這樣做。它做了一堆'if'條件,然後睡覺,當它醒來時它必須執行下一個循環。繼續做5次,然後有機會顯示最後一張圖像,因爲這是最後一次迭代發生的情況。你需要[這個](http://stackoverflow.com/questions/5410430/wpf-timer-like-c-sharp-timer) – CodingYoshi