是否可以在WinRT中访问LocalStorage外部的图像文件,以便我可以使用文件URI将其绑定到Image控件中的source属性?我不能使用.OpenRead()将文件存储在内存中,因为我可能有太多的图像(可能是OutOfMemoryException)。我也无法控制我的容器渲染行为 - 它是FlipView,它没有像GridView中的ContainerContentChanging事件(据我所知)。
答案 0 :(得分:2)
除非您的图片文件位于图片库中,并且您的应用在其清单中声明了“图片库”功能,否则您需要通过使用文件或文件夹选择器来要求用户获取访问这些文件的权限。然后,您可以保存允许在将来访问列表中访问该文件/文件夹的令牌。
一个article我发现这描述了这些快速摘录:
保存令牌
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);
如果您需要启用更多这些,可以使用文件/文件夹路径作为标记。