0

在 WinRT 中是否可以访问 LocalStorage 之外的图像文件,以便我可以使用文件 URI 将其绑定到图像控件中的源属性?我不能使用 .OpenRead() 将文件存储在内存中,因为我可能有太多图像(可能是 OutOfMemoryException)。我也无法控制我的容器渲染行为 - 它是 FlipView,它在 GridView 中没有任何类似 ContainerContentChanging 事件的事件(据我所知)。

4

1 回答 1

2

除非您的图像文件在图片库中并且您的应用在其清单中声明了“图片库”功能 - 您需要使用文件或文件夹选择器请求用户访问这些文件的权限。然后,您可以将允许访问该文件/文件夹的令牌保存在将来的访问列表中。

我发现一篇描述这一点的文章给出了这些快速片段

保存令牌

var picker = new FolderPicker();
picker.FileTypeFilter.Add("*");
var folder = await picker.PickSingleFolderAsync();

StorageApplicationPermissions.FutureAccessList.AddOrReplace(Token, folder);

访问由令牌解锁的存储项目

var folder = await StorageApplicationPermissions
    .FutureAccessList.GetFolderAsync(Token);

var fileToCopy = await StorageFile
    .GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/Logo.png"));
await fileToCopy.CopyAsync(folder, "Logo.png", NameCollisionOption.ReplaceExisting);

如果您需要启用更多这些,您可以使用文件/文件夹路径作为标记。

于 2013-11-04T16:57:07.997 回答