C#UWP显示图像

时间:2020-05-17 12:42:16

标签: c# uwp

我有一个小问题。我必须显示来自PicturesLibrary的图像。 我有以下代码:

    info = new ImageFileInfo() { ImageTitle = file.Path, ImageType = file.DisplayType, Image = file.Path };

我尝试使用转换器:

  return new Uri("ms-appx:///" + imagename, UriKind.Absolute);

但是我的图像没有显示。 我知道,有一种方法可以显示项目外部的图像,因为我已经使用过一段时间了,但是我忘了它是怎么做的,而且在任何地方都找不到。

1 个答案:

答案 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);