Twitter フィードをすべてダウンロードする WP7 アプリを作成しています。これで、すべてのプロファイル画像をダウンロードしてローカルに保存して使用し、アプリを開くたびにダウンロードされるようにします。そうする方法のいずれかを提案してください。
私がやっていること: WebClient を使用して画像をダウンロードする
public MainPage()
{
InitializeComponent();
WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
client.DownloadStringAsync(new Uri("http://www.libpng.org/pub/png/img_png/pnglogo-blk.jpg"));
}
そしてそれをファイルに保存します。
void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
if (myIsolatedStorage.FileExists(fileName1))
myIsolatedStorage.DeleteFile(fileName1);
var fileName1 = "Image.jpg";
using (var fileStream = new IsolatedStorageFileStream(fileName1, FileMode.Create, myIsolatedStorage))
{
using (var writer = new StreamWriter(fileStream))
{
var length = e.Result.Length;
writer.WriteLine(e.Result);
}
var fileStreamLength = fileStream.Length;
fileStream.Close();
}
}
今、画像を BitMapImage に設定しようとしています
BitmapImage bi = new BitmapImage();
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile(fileName1, FileMode.Open, FileAccess.Read))
{
var fileStreamLength2 = fileStream.Length;
bi.SetSource(fileStream);
}
}
しかし、BitmapImage のソースを設定できません。System.Exception をスローしていますが、具体的なものは何もありません。私はそれを正しい方法でやっていますか?手続きのことです。
編集別の観測は、fileStreamLength と fileStreamLength2 が異なることです。