我有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
方法设置图像源时,为什么我无法在图像控件中看到图像被加载?
答案 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”))})