在通用 Windows 应用程序上工作并尝试绑定(bind)作为 xaml 中的字节数组的图像。我有点迷路了。在 xaml 中我有类似的东西:
<Image Source="{Binding SelectedImageSource}"
Stretch="UniformToFill"
Grid.Row="1"/>
在我的 View 模型中有
private byte[] _selectedImageSource;
public byte[] SelectedImageSource
{
get { return _selectedImageSource; }
set
{
_selectedImageSource = value;
OnPropertyChanged(nameof(SelectedImageSource));
}
}
但是我这里看不到图片。我认为我需要做的是将 byte[] 转换为 Windows.UI.Xaml.Media.Imaging.BitmapImage。我不是 100% 确定该怎么做,也不确定那是否是正确的做法。
请您参考如下方法:
试试这个:
public static async Task<BitmapImage> GetBitmapAsync(byte[] data)
{
var bitmapImage = new BitmapImage();
using (var stream = new InMemoryRandomAccessStream())
{
using (var writer = new DataWriter(stream))
{
writer.WriteBytes(data);
await writer.StoreAsync();
await writer.FlushAsync();
writer.DetachStream();
}
stream.Seek(0);
await bitmapImage.SetSourceAsync(stream);
}
return bitmapImage;
}
您也可以尝试更简单的版本 described here ,但我认为我遇到了一些问题,这就是为什么我现在使用上面的代码。
