これは正しい方法です。後で再利用できるようにイメージをキャッシュしたい場合は、いつでもIsolated Storageにダウンロードできます。 WebClient
にOpenReadAsync
を使用する - イメージURIを渡してローカルに格納します。
WebClient client = new WebClient();
client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
client.OpenReadAsync(new Uri("IMAGE_URL"));
void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication();
using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream("image.jpg", System.IO.FileMode.Create, file))
{
byte[] buffer = new byte[1024];
while (e.Result.Read(buffer, 0, buffer.Length) > 0)
{
stream.Write(buffer, 0, buffer.Length);
}
}
}
それは他の方法で回避されます読む:あなたが正しくそれをやった
using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream("image.jpg", System.IO.FileMode.Open, file))
{
BitmapImage image = new BitmapImage();
image.SetSource(stream);
image1.Source = image;
}
私はこれを実行すると私は言った例外を取得:ので 相対URIを作成することはできません'uriString'パラメータは、絶対URIを表します。 – Ameen
あなたはどんなURIを渡していますか、どこに例外がスローされますか? –
これは私が渡しているURLです: 'http://www.foo-web.net/res2/Adele Blanc - Sec.foob' 例外は次の文で発生します: ' imgSource.UriSource = new Uri(movie.B_Poster、UriKind.Relative); ' – Ameen