我必须以编程方式设置网格背景,其中包含从图片库中获取的图像(应用程序的NO assets文件夹)...
我尝试过这段代码
MediaLibrary library = new MediaLibrary();
Picture picture = library.Pictures[rnd.Next(0, 7)];
string path = picture.GetPath();
BackgroundImg.ImageSource = new BitmapImage { UriSource = new Uri("ms-appdata:///Local/" + picture.Name, UriKind.Absolute) };
//BackgroundImg.ImageSource = new BitmapImage { UriSource = new Uri(path, UriKind.Absolute) };
如果图片是从项目中的assets文件夹中获取的,代码可以工作,所以我认为错误是uri!
有人可以帮我吗?
感谢名单
答案 0 :(得分:0)
为什么不使用StorageFile而不是“ms-appdata:/// local /”。
试试这种方法对我来说很好。
public void setBackgroundImage(String pictureName)
{
using (var storage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (var stream = storage.OpenFile(pictureName, FileMode.Open))
{
BitmapImage bitmapimage = new BitmapImage();
bitmapimage.SetSource(stream);
BackgroundImg.ImageSource = bitmapimage;
}
}
}
然后你叫它
setBackgroundImage(picture.Name);
*请注意,在Windows Phone 8中,您仍然可以使用独立存储和Silverlight Uri。
答案 1 :(得分:0)
我已经用这种方式解决了:
MediaLibrary library = new MediaLibrary();
Picture picture = library.Pictures[rnd.Next(0, library.Pictures.Count - 1)];
BitmapImage bitmapimage = new BitmapImage();
bitmapimage.SetSource(picture.GetImage());
BackgroundImg.ImageSource = bitmapimage;