gpt4 book ai didi

c# - 为什么Image中的bitmapImage不刷新?

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:23 25 4
gpt4 key购买 nike

我正在尝试创建一个简单的抛硬币游戏。我正在尝试创建“旋转硬币”效果。我有两个 BitmapImage,它们从不同的角度显示硬币。我有 for 循环并尝试从 Image 更改 BitmapImage。然而,由于某种原因这不起作用,它只是跳过 coinflip 并显示结果。如果我在每个 imagechange 之间放置 MessageBox,它就可以工作。为什么?

public void spinCoin()
{
for (int i = 0; i < 200; i++)
{
try
{
imageBox.Source = side1;
imageBox.Source = side2;
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}

}
}

完整代码可以在这里找到:http://pastebin.com/cS3vZhKN http://pastebin.com/7xNsLgWC

编辑:工作代码:

public async void spinCoin()
{
label.Content = "Heitetään...";

for (int i = 0; i < 5; i++)
{
imageBox.Source = side1;
await Task.Delay(50);
imageBox.Source = side2;
await Task.Delay(50);


}

}

-

public async void button1_Click(object sender, RoutedEventArgs e)
{
spinCoin();
await Task.Delay(600);
if (tossCoin() == 1)
{
imageBox.Source = kr;
label.Content = "Kruuna!";
}
else
{
imageBox.Source = kl;
label.Content = "Klaava!";
}
}

最佳答案

由于这必须在 UI 线程上执行,因此在方法退出之前,UI 永远没有机会更新。即使这是与 UI 线程并行执行的,它对于 UI 来说也无法正确显示动画。

您需要一个计时器机制来调整更新速度并让它在后台线程上运行。或者,您可以使方法异步并在每次分配图像源之间插入 await Task.Delays

关于c# - 为什么Image中的bitmapImage不刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23228193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com