[英]Save image (page state)
我有一個應用程序,要求用戶從他的照片庫中進行選擇並進行圖像處理,然后允許他在圖像上添加文本或其他對象。 但是一旦用戶選擇了主圖像並在導航時向后導航到輔助頁面,圖像就消失了。 我不知道這個。 我希望這是我忽略的簡單事情。
謝謝
以下是我可以測試的快速示例。 它由一個主圖像和2個按鈕組成,一個按鈕選擇圖片,另一個按鈕導航到第二頁,第二個頁面只有一個按鈕導航回主頁。
public partial class MainPage : PhoneApplicationPage
{
// Constructor
PhotoChooserTask photoChooserTask;
public MainPage()
{
InitializeComponent();
// Sample code to localize the ApplicationBar
//BuildLocalizedApplicationBar();
}
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
photoChooserTask = new PhotoChooserTask();
photoChooserTask.Completed += new EventHandler<PhotoResult>(photoChooserTask_Completed);
photoChooserTask.Show();
}
void photoChooserTask_Completed(object sender, PhotoResult e)
{
//Code to display the photo on the page in an image control named myImage.
BitmapImage pic = new BitmapImage();
if (pic != null)
{
pic.SetSource(e.ChosenPhoto);
e.ChosenPhoto.Position = 0;
}
else
{
}
imgMain.Source = pic;
// appsettings.Add("_imgMain", pic);
}
private void btnPage_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.Relative));
}
第二頁
public Page1()
{
InitializeComponent();
}
private void btnGoBack_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
}
這是您的問題:
private void btnGoBack_Click(object sender, RoutedEventArgs e)
{
// <<<<< Creates new page >>>>>>>>
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
}
當按下后退按鈕時,您導航到一個新的主頁,有效地實例化具有新狀態和控件的新頁面。
您可以通過導航創建此后退堆棧:
Main => Page1 => Main
刪除該導航代碼,Windows Phone OS將為您處理向后導航到已經創建的主頁。
@thumbmunkeys已經說明您的問題。 您不得在導航堆棧中創建任何循環,最好將它們做成樹狀結構。 如果您仍然願意使用額外的后退按鈕,請使用以下代碼:
private void btnGoBack_Click(object sender, RoutedEventArgs e)
{
//your additional code here
NavigationService.GoBack();
}
這將從后堆棧中刪除一個條目。 但是,仍然有機會用戶按下硬件后退鍵,在這種情況下,您的其他代碼將不會執行。 更好的選擇是使用安裝有后退按鈕的PhoneApplicationPage.OnBackKeyPress方法 。
protected override void OnBackKeyPress(CancelEventArgs e)
{
base.OnBackKeyPress(e);
//your additional code here
}
系統將處理后退堆棧,您將能夠完成所需的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.