在 WPF 中循环更改图像源
本文关键字:图像 循环 WPF | 更新日期: 2023-09-27 18:37:10
我想在我的程序中循环更改图像源,它是 C# 代码:
private void Img_MouseLeave(object sender, MouseEventArgs e)
{
Image image = sender as Image;
int milliseconds = 500;
for(int i = 0; i < ImageUris.Count(); i++)
{
Thread.Sleep(milliseconds);
image.Source = new BitmapImage(new Uri(@ImageUris[i], UriKind.Absolute));
}
}
但问题是当我运行程序时,窗口被冻结了。窗口中没有发生。我想也许它受到线程的影响,但我找不到办法。
调用
Thread.Sleep
将冻结正在运行应用程序的 MainThread。
使用 DispatcherTimer 来避免冻结应用程序。
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += dispatcherTimer_Tick;
dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 500);
private void dispatcherTimer_Tick(object sender, EventArgs e) {
// assign new source to the Image
}