我正在尝试使用Image
在代码中设置BitmapImage
的源,但是没有显示
这是我的代码:
xaml:
<Image x:Name="img" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="Fill" />
后面的代码:
var image = new BitmapImage(new Uri(@"C:\Users\XXX\Pictures\image.jpg", UriKind.Absolute));
image.DecodePixelWidth = 100;
this.img.Source = image;
答案 0 :(得分:1)
这是一个权限问题。您的应用无权直接读取c:\ users \ XXX,因此无法从该路径加载BitmapImage。参见Files and folders in the Music, Pictures, and Videos libraries
假设c:\ Users \ XXX \ Pictures是当前用户的图片库,并且该应用程序具有图片库功能,那么您可以获取图像文件的代理句柄并用BitmapImage.SetSourceAsync加载。 / p>
我假设此处的代码已简化用于演示,因为图片库是应用程序控件之外的以用户为中心的位置。该应用通常不能假定会使用硬编码的图像名称。
// . . .
await SetImageAsync("image.jpg");
// . . .
}
private async Task SetImageAsync(string imageName)
{
// Load the imageName file from the PicturesLibrary
// This requires the app have the picturesLibrary capability
var imageFile = await KnownFolders.PicturesLibrary.GetFileAsync(imageName);
using (var imageStream = await imageFile.OpenReadAsync())
{
var image = new BitmapImage();
image.DecodePixelWidth = 100;
// Load the image from the file stream
await image.SetSourceAsync(imageStream);
this.img.Source = image;
}
}