WPF刷新图像(缓存问题)

时间:2011-03-28 23:12:30

标签: wpf image cache-control

在我的applikation中动态加载图片时遇到了很大的问题。当我开始applikation时,占位符图像源为空。当我点击一个按钮时,会创建一个图像并将其作为占位符源加载。当我再次点击时,会创建一个新图像,但会显示旧图像。图像的创建非常完美。我磁盘上的文件应该是文件。

以下功能是设置图像占位符的来源。

public void setImage(string path)
    {
        BitmapImage img = new BitmapImage();
        img.BeginInit();
        img.UriSource = new Uri(path, UriKind.Relative);
        img.EndInit();

        //Set Refreshing Options
        img.CacheOption = BitmapCacheOption.None;
        img.CreateOptions = BitmapCreateOptions.IgnoreImageCache;


        placeholder.Source = img;
    }

BitmapCacheOption和BitmapCreateOptions这两个选项不会改变任何内容。

你们有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

出于性能原因,WPF会在内部缓存图像。如果你两次都使用相同的Uri,并且希望每次都能获得不同的图像(例如,如果Uri位于返回随机图像的Web服务器上),那么这个缓存将是一个问题。 / p>

您可能需要创建一个WebRequest并手动下载图像,而不是依赖Image类来为您完成。

另一种选择是以简单的方式改变Uri,使其独一无二。例如,您可以将GUID附加为查询字符串。