从图片库设置背景图像

时间:2013-09-27 21:14:10

标签: c# xaml background windows-phone-8 grid

我必须以编程方式设置网格背景,其中包含从图片库中获取的图像(应用程序的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!

有人可以帮我吗?

感谢名单

2 个答案:

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