我目前正在使用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