C#Metro app如何从Web加载图像

sai*_*esh 5 c# windows-phone-7 microsoft-metro windows-8 windows-runtime

我在画布上添加了Windows.UI.Xaml.Controls.Image.我正在使用HttpClient进行http调用以下载图像.我将图像作为流并添加为BitmapImage对象的源,但图像未加载.任何人都可以告诉我我做错了什么

代码:

        var httpClient = new HttpClient();
        var content = await httpClient.GetStreamAsync(imageUrl);


            var ras = new InMemoryRandomAccessStream();
            await content.CopyToAsync(ras.AsStreamForWrite());
            bitmap = new BitmapImage();
            bitmap.SetSource(ras);

            myImage.Source = bitmap;
Run Code Online (Sandbox Code Playgroud)

sai*_*esh 10

我设法让它运作起来.以下是代码:

     var httpClient = new HttpClient();            
     var contentBytes = await httpClient.GetByteArrayAsync(uri);                          
     var ims = new InMemoryRandomAccessStream();                
     var dataWriter = new DataWriter(ims);
     dataWriter.WriteBytes(contentBytes);
     await dataWriter.StoreAsync();
     ims.Seek(0);

     bitmap = new BitmapImage();                
     bitmap.SetSource(ims);                

     myImage.Source = bitmap;                
Run Code Online (Sandbox Code Playgroud)

  • 这可能是互联网上最好的东西.我几乎放弃并将文件下载到本地存储,这不是我想要做的.非常感谢! (2认同)

use*_*095 5

我相信这会奏效:

myImage.Source = new BitmapImage(new Uri(imageUrl));
Run Code Online (Sandbox Code Playgroud)