我有一个小问题。我必须显示来自PicturesLibrary的图像。 我有以下代码:
info = new ImageFileInfo() { ImageTitle = file.Path, ImageType = file.DisplayType, Image = file.Path };
我尝试使用转换器:
return new Uri("ms-appx:///" + imagename, UriKind.Absolute);
但是我的图像没有显示。 我知道,有一种方法可以显示项目外部的图像,因为我已经使用过一段时间了,但是我忘了它是怎么做的,而且在任何地方都找不到。
答案 0 :(得分:1)
ms-appx
的Uri方案仅用于项目中的文件,图片库中的文件无法通过它获得。
在UWP中,我们不建议使用文件路径来获取文件。因为UWP对从路径访问文件有严格的限制。
如果要访问图片库中的文件,首先需要检查package.appxmenifest中“功能”标签中的Picture Library
。
然后您可以通过文件名访问它:
var img = await KnownFolders.PicturesLibrary.TryGetItemAsync("test.png");
但是还有其他更推荐的方法,例如使用令牌访问文件:
获取文件后,我们将其存储在将来的访问列表中并获取令牌
保存
string faToken = Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.Add(file);
info = new ImageFileInfo() { ImageTitle = file.Path, ImageType = file.DisplayType, Image = faToken };
获取
var image = Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.GetFileAsync(info.Image);