WPF刷新图片(缓存问题)

3
我在应用程序中动态加载图像时遇到了一个大问题。当我启动应用程序时,占位符图像源为空。当我点击按钮时,会创建并加载一张图像作为占位符源。再次点击时,会创建新的图像,但旧的图像仍然显示。图像的创建完美无缺。我的磁盘上的文件是它们应该的文件。
以下函数设置图像占位符的源。
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

为了提高性能,WPF 在内部缓存图像。如果您两次使用相同的 Uri,并期望每次获取不同的图像(例如,如果 Uri 在返回随机图像的 Web 服务器上),那么这个缓存将成为您的问题。

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

另一个选择是以微不足道的方式更改 Uri,使其唯一。例如,您可以附加一个 GUID 作为查询字符串。


此应用程序仅在本地运行。 - Stillmatic1985
那我不明白你遇到了什么问题。你是多次指定相同的Uri并期望获得不同的图像吗?还是指定不同的Uri却得到相同的图像? - Joe White

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接