Необходимо ли копировать поток ответов в байтовый массив, а затем в MemoryStream?Если нет, вы можете просто сделать следующее:
Stream myStream = response.GetResponseStream();
Deployment.Current.Dispatcher.BeginInvoke(() => {
BitmapImage bmp = new BitmapImage();
bmp.SetSource(myStream);
image1.Source = bmp;
});
Если вам по какой-либо причине необходимо сделать копию, вам нужно будет заполнить буфер в цикле:
Stream myStream = response.GetResponseStream();
int contentLength = (int)myStream.Length;
byte[] byt = new Byte[contentLength];
for (int pos = 0; pos < contentLength; )
{
int len = myStream.Read(byt, pos, contentLength - pos);
if (len == 0)
{
throw new Exception("Upload aborted.");
}
pos += len;
}
MemoryStream ms = new MemoryStream(byt);
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
// same as above
});
Вторая часть адаптирована (немного) из растровых изображений C #, байтовых массивов и потоков! .