0
我試圖將一張圖像控件中的圖像傳遞到另一頁面。 例如,我在Page1.xaml中有一個名爲「image1」的圖像控件,我希望「image1」中顯示的圖像可以通過/顯示在Page2.xaml ink canvas中。 你能幫我解決這個問題嗎? 謝謝。將圖像從一個頁面傳遞到另一個Windows Phone 7
我試圖將一張圖像控件中的圖像傳遞到另一頁面。 例如,我在Page1.xaml中有一個名爲「image1」的圖像控件,我希望「image1」中顯示的圖像可以通過/顯示在Page2.xaml ink canvas中。 你能幫我解決這個問題嗎? 謝謝。將圖像從一個頁面傳遞到另一個Windows Phone 7
第一頁將圖像保存爲獨立存儲作爲文件'photo.jpg'。第二頁閱讀。
第1頁:
public partial class Page1 : PhoneApplicationPage
{
PhotoChooserTask PhotoChooser;
int ImageWidth, ImageHeight;
// Constructor
public Page1()
{
InitializeComponent();
ImageWidth = (int)PageImage.Width;
ImageHeight = (int)PageImage.Height;
PhotoChooser = new PhotoChooserTask();
PhotoChooser.PixelWidth = ImageWidth;
PhotoChooser.PixelHeight = ImageHeight;
PhotoChooser.ShowCamera = true;
PhotoChooser.Completed += new EventHandler<PhotoResult>(PhotoChooser_Completed);
}
void PhotoChooser_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
IsolatedStorageFile Store = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream Stream = new IsolatedStorageFileStream("photo.jpg", FileMode.Create, FileAccess.Write, Store);
WriteableBitmap myImage = new WriteableBitmap(ImageWidth, ImageHeight);
myImage.SetSource(e.ChosenPhoto);
PageImage.Source = myImage;
PageImage.InvalidateArrange();
myImage.SaveJpeg(Stream, ImageWidth, ImageHeight, 0, 100);
Stream.Close();
}
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (IsolatedStorageFile.GetUserStoreForApplication().FileExists("photo.jpg"))
{
IsolatedStorageFile Store = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream Stream = new IsolatedStorageFileStream("photo.jpg", FileMode.Open, FileAccess.Read, Store);
WriteableBitmap myImage = new WriteableBitmap(ImageWidth, ImageHeight);
myImage.LoadJpeg(Stream);
PageImage.Source = myImage;
PageImage.InvalidateArrange();
Stream.Close();
}
}
private void ToPage2Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative));
}
private void LoadButton_Click(object sender, System.Windows.RoutedEventArgs e)
{
PhotoChooser.Show();
}
}
第2頁:
public partial class Page2 : PhoneApplicationPage
{
int ImageWidth, ImageHeight;
public Page2()
{
InitializeComponent();
ImageWidth = (int)PageImage.Width;
ImageHeight = (int)PageImage.Height;
}
private void BackButton_Click(object sender, System.Windows.RoutedEventArgs e)
{
NavigationService.GoBack();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (IsolatedStorageFile.GetUserStoreForApplication().FileExists("photo.jpg"))
{
IsolatedStorageFile Store = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream Stream = new IsolatedStorageFileStream("photo.jpg", FileMode.Open, FileAccess.Read, Store);
WriteableBitmap myImage = new WriteableBitmap(ImageWidth, ImageHeight);
myImage.LoadJpeg(Stream);
PageImage.Source = myImage;
PageImage.InvalidateArrange();
Stream.Close();
}
}
}
順便說一句,爲什麼使用照片選擇器任務? –
這只是生成圖像的示例。你必須從你的源代碼中保存你的圖像 – Ku6opr
如果你已經把圖像加載到你的控件中,你可以用下面的代碼保存它:'WriteableBitmap ImageToSave = new WriteableBitmap(PageImage,null)',其中PageImage是你的UIElement。然後使用上面的代碼保存並加載到隔離存儲器 – Ku6opr