如何從應用程序實例之間的媒體庫中檢索相同的照片?我啓動照片庫供用戶選擇通過照片:Windows Phone:如何在應用程序實例之間從媒體庫中檢索相同的照片
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;
}
然而,這似乎並沒有作爲光路F工作rom照片選擇器是某種形式的guid:「\ Applications \ Data \ 02E58193-119F-42E2-AD85-C24247BE2AB0 \ Data \ PlatformData \ PhotoChooser-4edd185d-d934-4dac-8a34-758cac09d338.jpg」
當我切換出應用程序或在頁面之間移動時,Application.GetResourceStream(uri)爲空。有一個更好的方法嗎?
如何每次檢索相同的路徑,以便當我墓碑或殺死應用程序時,我可以退出該文件並顯示它?或者是有不同的/更有效的方式來做到這一點。
這很好用,謝謝! – KwackMaster 2011-04-23 01:33:15
其實我發現這並不能完全解決問題。問題是從photochooser返回的originalFileName有一個只對當前應用程序實例有效的guid。如果我關閉並重新啓動應用程序,該路徑將不再工作(如果我再次選擇相同的照片,我會得到不同的路徑)。我需要的是我可以在應用程序實例之間使用的照片的絕對路徑。例如\ PhotoChooser \ Photo569_05_11_11.jpg。我不知道是否有辦法做到這一點,而不寫我自己的照片選擇器。 – KwackMaster 2011-05-16 21:45:49