2013-11-01 71 views
0

WinRT中可以訪問LocalStorage外部的映像文件,以便我可以使用文件URI將其綁定到Image控件的源屬性?我無法使用.OpenRead()將文件存儲在內存中,因爲我可能有太多圖像(可能是OutOfMemoryException)。我也無法控制我的容器渲染行爲 - 它是FlipView,它沒有任何像GridView中的ContainerContentChanging事件(據我所知)。StorageFile - 訪問LocalStorage外部的映像

回答

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); 
解鎖的存儲項目

如果需要啓用更多這些功能,則可以使用文件/文件夾路徑作爲標記。