У меня были похожие проблемы с ранее работавшим битмап-кодом, не работающим в Windows RT, ранняя попытка убеждает меня, что он отказывается загружать что-либо, если только это не будет отображаться в пользовательском интерфейсе (здесь мне нужно было вставитьЗадержка в 1 мс перед назначением источников только для того, чтобы заставить его запускать загрузку образа):
var image = .... // reference to animage on the UI
var placeholder = ... // a placeholder BitmapImage
var source = ... // uri to download
image.Source = placeholder;
var src = new BitmapImage(new Uri(source));
src.ImageOpened += (s, e) =>
{
var bi = s as BitmapImage;
image.Source = bi;
};
image.Source = src;
// Delay required to trigger download
await Task.Delay(1);
image.Source = placeholder;
Вот еще одно решение, которое я с успехом попробовал:
var image = .... // reference to animage on the UI
var source = ... // uri to download
var placeholder = ... // a placeholder BitmapImage
image.Source = placeholder;
var bytes = await new HttpClient().GetByteArrayAsync(source);
var img = new BitmapImage();
await img.SetSourceAsync(bytes.AsBuffer().AsStream().AsRandomAccessStream());
image.Source = img;