Silverlight Windows Phone:如何在应用程序实例之间从媒体库检索相同的照片

Silverlight Windows Phone:如何在应用程序实例之间从媒体库检索相同的照片,silverlight,windows-phone-7,photolibrary,Silverlight,Windows Phone 7,Photolibrary,如何在应用程序实例之间从媒体库检索相同的照片?我启动照片库,供用户通过以下方式选择照片: PhotoChooserTask myPhotoChooser = new PhotoChooserTask(); myPhotoChooser.ShowCamera = true; myPhotoChooser.Show();

如何在应用程序实例之间从媒体库检索相同的照片?我启动照片库,供用户通过以下方式选择照片:

                        PhotoChooserTask myPhotoChooser = new PhotoChooserTask();
                        myPhotoChooser.ShowCamera = true;
                        myPhotoChooser.Show();
                        myPhotoChooser.Completed += new EventHandler<PhotoResult>(cameraCaptureTask_Completed);
我将此信息保存在独立存储中,以便当用户再次启动应用程序时,我可以检索路径并显示如下图像:

    private void cameraCaptureTask_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
                         string imagePath = e.OriginalFileName.ToString();
         }
    }
 private  BitmapImage ConvertUriToBitmap(string pathToImage)
    {
        StreamResourceInfo streamResInfo = null;
        Uri uri = new Uri(pathToImage, UriKind.Relative);

        streamResInfo = Application.GetResourceStream(uri); //This fails! StreamResInfo is null
        BitmapImage convertedBitmap = new BitmapImage();
        convertedBitmap.SetSource(streamResInfo.Stream);
        return convertedBitmap;
    } 
但是,这似乎不起作用,因为来自照片选择器的照片路径是某种形式的guid:“\Applications\Data\02E58193-119F-42E2-AD85-C24247BE2AB0\Data\PlatformData\PhotoChooser-4edd185d-d934-4dac-8a34-758CAC0938.jpg”


当我退出应用程序或在页面之间移动时,Application.GetResourceStream(uri)为null。有更好的方法吗


我如何每次都检索相同的路径,以便在删除或终止应用程序时,可以停用该文件并显示它?或者是否有一种不同的/更有效的方法

Application.GetResourceStream将为该路径返回null,因为GetResourceStream方法正在应用程序本身而不是从设备中查找资源

要在从墓碑记录恢复时重新加载相同的图像,只需保留OriginalFileName属性,然后使用该属性创建
位图图像,如下所示:

string path = /* Load the saved OriginalFileName */;
var bitmap = new BitmapImage(new Uri(path, UriKind.Absolute));
myImageControl.Source = bitmap;

注意:OriginalFileName属性已经是一个字符串,因此您不需要对其调用.ToString()

我在文档中找到了答案:
基本上,照片选择器中存在一个返回临时路径的bug。如果你想在应用程序实例之间使用图片,微软建议将图片复制到独立存储中

事实上,我发现这并不能完全解决问题。问题是,从photochooser返回的originalFileName有一个仅对应用程序的当前实例有效的guid。如果我关闭并重新启动应用程序,该路径将不再有效(如果我再次选择同一张照片,我将获得不同的路径)。我需要的是照片的绝对路径,我可以在应用程序实例之间使用它。e、 g.\PhotoChooser\Photo569_05_11_11.jpg。我想知道是否有一种方法可以做到这一点,而不用编写自己的照片选择器。