无法使用UriSource从图片库创建BitmapImage

时间:2015-11-19 08:28:42

标签: c# windows-runtime windows-phone-8.1 winrt-xaml

我有WindowsPhone 8.1 RT应用程序。我想创建一个简单的BitmapImage并在UI上显示它。

图像保存在图片库的Screenshots文件夹中。当我尝试使用以下代码创建BitmapImage时,它总是失败并显示空白区域。

string imageLocation = "C:\\Data\\Users\\Public\\Pictures\\Screenshots\\wp_ss_20150923_0001.png"
BitmapImage bitmapImage = new BitmapImage(new Uri(imageLocation), UriKind.Absolute);
imageControl.Source = bitmapImage;

但是当我读取存储文件并创建流并使用SetSourceAsync进行设置时,会显示图像。

StorageFile imageFile = await StorageFile.GetFileAsync(imageLocation);
var stream = await imageFile.OpenAsync(FileAccessMode.Read);
await bitmapImage.SetSourceAsync(bitmapImage);
imageControl.Source = bitmapImage;

当我使用Uri方法设置图像源时,为什么我无法在图像控件中看到图像被加载?

2 个答案:

答案 0 :(得分:1)

您的应用程序是"沙盒",这意味着它无法直接访问文件系统。并且图片库不提供用于访问图像的任何URI模式。

shimmed

以下是有关WinRT中another quite similar question on SO的更多信息。您可能会发现file access on MSDN特别有趣。

答案 1 :(得分:1)

你应该试试这个

  

new Image(){       Source = new BitmapImage(new Uri(“ms-appx:///Assets/example.png”))})