UWP:在'get;中设置来自FilePath的image.source &安培;组;'

时间:2015-12-28 19:31:55

标签: get filepath uwp bitmapimage isolatedstoragefile

集合中的每个图像都有一个序列化的文件路径。加载集合时,我需要从文件路径加载图像。下面的代码不起作用,因为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;
        }
    }

是否有其他代码可以实现此目的?

1 个答案:

答案 0 :(得分:1)

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

SetSource

我测试时SetSourceAsync阻止了应用程序,因此我使用了var file = await ApplicationData.Current.LocalFolder.CreateFileAsync( FilePath, CreationCollisionOption.OpenIfExists); using (var stream = await file.OpenReadAsync()) { await image.SetSourceAsync(stream); }

您也可以直接访问Isolated Storage文件夹,如下所示:

{{1}}