我使用C#UWP Carousel来显示图像集合。图像是3d观察者视点的缩略图。当我单击保存视点时,它会第一次更新该位置的图像。但是,当我单击连续保存时,它不会更新控件中的图像。图像的路径没有改变,但图像的内容有。我已手动验证图像文件确实正在更新。只是旋转木马上的图像不是。如何强制Carousel Control更新所有图像或清除其缓存强制更新?
我尝试将ItemSource设置为null并重置它。但这不起作用。必须有一种方法来告诉控件刷新图形。 UpdateLayout不起作用,当我触发CollectionChanged事件时,它也不起作用。
mCarouselControl.ItemsSource = null;
mCarouselControl.Items.Clear();
更新缩略图图像 然后
mCarouselControl.ItemsSource = mCaroselItems;
这就是你如何解决问题 在为缩略图加载的位图中,您必须将位图创建选项设置为IgnoreImageCache。
public async Task<BitmapImage> LoadThumbnailFromFile(string filepath)
{
var bi = new BitmapImage();
StorageFile file = await StorageFile.GetFileFromPathAsync(filepath);
const uint requestedSize = 400;
const ThumbnailMode thumbnailMode = ThumbnailMode.PicturesView;
const ThumbnailOptions thumbnailOptions = ThumbnailOptions.ResizeThumbnail;
StorageItemThumbnail thumbnail = await file.GetThumbnailAsync(thumbnailMode, requestedSize, thumbnailOptions);
bi.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
bi.DecodePixelHeight = 200;
bi.DecodePixelWidth = 200;
bi.SetSource(thumbnail);
return bi;
}