我尝试动态加载图片。 XAML是:
加载图片的代码是:(由代码后面的按钮点击事件触发)
Image myimage = new Image() { Source = new BitmapImage(new Uri(url)) };
this.myPlayer.Content = myimage;
网址指向图片的网站。假设我有像以下网址的图片:
"http://mysite/myfolder/my.jpg"
然后我运行应用程序,单击按钮,我可以获取图像并在UI中显示它没有问题。
然后我使用相同的名称覆盖服务器上的图像文件,然后再次单击该按钮,图像不会刷新。我需要为新的图像显示重新加载整个SL应用程序。 如何解决这个问题?
答案 0 :(得分:1)
解决该问题的最简单方法是在图片网址的末尾添加一个随机数。
Random random = new Random();
int randomValue = random.Next(1000000); // will return value between 0 & 1,000,000
string base = "http://mysite/myfolder/my.jpg";
string url = base + "?unused=" + randomValue;
//Note url now equals: "http://mysite/myfolder/my.jpg?unused=####"
Image myimage = new Image() { Source = new BitmapImage(new Uri(url)) };
this.myPlayer.Content = myimage;
这样做是因为Web服务器会自动忽略附加到图像名称的?unused=
部分。
每次翻阅此功能时,您都会收到来自random.Next(...)
的新随机值,该值将指示" new"图像请求,并将绕过可能正在进行的任何缓存。
答案 1 :(得分:0)
您可以使用BitmapImage.CacheOption
属性指定缓存行为:http://msdn.microsoft.com/fr-fr/library/system.windows.media.imaging.bitmapimage.cacheoption.aspx
您可以在OnLoad
:http://msdn.microsoft.com/fr-fr/library/system.windows.media.imaging.bitmapcacheoption.aspx
None