WPF:在执行期间显示图像

时间:2019-08-01 13:27:10

标签: c# wpf image

我有一个带有一列以显示图像的网格(成功/失败的图像,两个单独的图像),正在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);
    }
}

我希望图像在运行时本身而不是在执行后显示。

1 个答案:

答案 0 :(得分:0)

这可能是由于工作阻止了UI线程的更新...

最重要的是,我认为您可以在BackgroundWorker中完成该工作并使用Dispatcher.Invoke调用来更新UI线程。