gpt4 book ai didi

get - UWP:从 'get; & set;' 中的 FilePath 设置 image.source

转载 作者:行者123 更新时间:2023-12-05 05:24:29 24 4
gpt4 key购买 nike

集合中的每个图像都有一个序列化的文件路径。加载集合时,我需要从文件路径加载图像。下面的代码将不起作用,因为 IsolatedStorageFileStream 与用于 image.SetSource() 的 IRandomAccessStream 不兼容。

public BitmapImage Image
{
get
{
var image = new BitmapImage();
if (FilePath == null) return null;

IsolatedStorageFileStream stream = new IsolatedStorageFileStream(FilePath, FileMode.Open, FileAccess.Read, IsolatedStorageFile.GetUserStoreForApplication());

image.SetSource(stream);

return image;
}
}

是否有替代代码来完成此操作?

最佳答案

您可以简单地使用 WindowsRuntimeStreamExtensions.AsRandomAccessStream扩展方法:

using System.IO;
...

using (var stream = new IsolatedStorageFileStream(
FilePath, FileMode.Open, FileAccess.Read,
IsolatedStorageFile.GetUserStoreForApplication()))
{
await image.SetSourceAsync(stream.AsRandomAccessStream());
}

当我测试此 SetSource 时阻止了应用程序,因此我使用了 SetSourceAsync


您也许还可以像这样直接访问独立存储文件夹:

var file = await ApplicationData.Current.LocalFolder.CreateFileAsync(
FilePath, CreationCollisionOption.OpenIfExists);

using (var stream = await file.OpenReadAsync())
{
await image.SetSourceAsync(stream);
}

关于get - UWP:从 'get; & set;' 中的 FilePath 设置 image.source,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34499548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com