首页 > 解决方案 > 为什么我不能在 XAML 中对 StreamImageSource 进行数据绑定以及如何正确绑定图像?

问题描述

   <Image Source="{Binding s, Mode=OneWay}"></Image>

使用 StreamImageSource 属性:

 public ImageSource s { get; set; }

引发以下异常:

无法使用消息“未实现”[0:] ImageLoaderSourceHandler 创建图像解码器:图像数据无效:Xamarin.Forms.StreamImageSource

我想知道为什么会这样?我想我必须创建一个转换器,但我不知道我应该转换什么?哪个参数对 Image.source 是正确的?

标签: xamlxamarin

解决方案


似乎一旦使用 Streams 创建源,Streams 就会被处理和关闭。这就是图像数据“无效”的原因,因为没有图像可以从封闭的流中读取。我的解决方案是每次使用它时都从流中创建一个副本。

 ImageSource.FromStream(() => new MemoryStream(stream.ToArray()));

推荐阅读