我获取一个图片流,然后想赋值给BitmapImage变量用于绑定。
发现用以下代码,直接赋值是无效的
MemoryStream ms = new MemoryStream();
Stream responseStream = GetSteamResponse(url);
responseStream.CopyTo(ms);
BitmapImage image = new BitmapImage();
image.BeginInit();
image.StreamSource = ms;
image.EndInit();
return image;
需要先把流转成字节数组,然后再用这个数组new一个新的MemeryStream赋值才能成功
MemoryStream ms = new MemoryStream();
Stream responseStream = GetSteamResponse(url);
responseStream.CopyTo(ms);
byte[] bytes = ms.GetBuffer();
ms.Close();
BitmapImage image = new BitmapImage();
image.BeginInit();
image.StreamSource = new MemoryStream(bytes);
image.EndInit();
return image;
copyto的流和new出来的有什么区别,为什么会造成这种情况?