我在WP8上有应用程序,它包含从服务器加载的图像。图片在服务器上正在更改,但具有相同的名称和相同的URL。更改后,手机仍然显示以前的图片。如何解决这个问题。
答案 0 :(得分:0)
这是由于内置的资源缓存,它会影响远程请求以及应用程序中本地映像资源的请求。声明图像控制标记时,可以通过手动创建其源属性来禁用缓存。例如:
<Image>
<Image.Source>
<BitmapImage UriSource="{Binding ContentPath}"
CreateOptions="IgnoreImageCache" />
</Image.Source>
</Image>
答案 1 :(得分:0)
好吧,手机会缓存下载的图像。如果您想设置新图像,则必须“清理”图像源。你的问题没有给我inave信息,但从我的理解,一个简单的转换器应该做的伎俩:
public class CacheImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string path = value as string;
Uri imageFileUri = new Uri(path, UriKind.Absolute);
BitmapImage bm = new BitmapImage(imageFileUri);
return bm;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
<强> XML 强>
<phone:PhoneApplicationPage.Resources>
<imgConv:CacheImageConverter x:Key="ConvertNew" />
</phone:PhoneApplicationPage.Resources>
...
<Image Source="{Binding strPath, Converter={StaticResource ConvertNew}}"/>