我有一个带有一列以显示图像的网格(成功/失败的图像,两个单独的图像),正在for循环中执行一个api,并根据状态必须显示图像(成功/失败的两个图像)。 。我看到图像在执行后一次全部显示,而在执行过程中却一次又一次显示。
我提到了-How to load image to WPF in runtime?,但仍然无法正常工作。
public class DisplayImage
{
public static void DisplayImages(Image imgDisplay, HttpResponseMessage response)
{
BitmapImage image = new BitmapImage();
image.BeginInit();
if (response.IsSuccessStatusCode)
{
image.UriSource = new Uri(System.IO.Path.Combine(path, @"Image\Green_1.png"));
}
else
{
image.UriSource = new Uri(System.IO.Path.Combine(path, @"Image\Red.png"));
}
image.EndInit();
imgDisplay.Source = image;
imgDisplay.Refresh()
}
}
public static class ExtensionMethods
{
private static Action EmptyDelegate = delegate () { };
public static void Refresh(this UIElement uiElement)
{
uiElement.Dispatcher.Invoke(DispatcherPriority.Render, EmptyDelegate);
}
}
我希望图像在运行时本身而不是在执行后显示。
答案 0 :(得分:0)
这可能是由于工作阻止了UI线程的更新...
最重要的是,我认为您可以在BackgroundWorker中完成该工作并使用Dispatcher.Invoke调用来更新UI线程。