我有一个应用程序,要求用户从他的照片库中选择和成像,然后允许他在图像上添加文本或其他对象。但是,一旦用户选择主图像并在他向后导航时导航到辅助页面,图像就会消失。我无法弄清楚这一点。我希望这是我忽略的一些简单。
感谢
下面的是我可以测试的快速示例。我包括一个主图像和两个按钮,一个用于选择图片,另一个用于导航到第二个页面,第二个页面只有一个按钮可以导航回主页面。
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));
}
答案 0 :(得分:0)
这是你的问题:
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将为您处理已创建的主页的后退导航。
答案 1 :(得分:0)
@thumbmunkeys已经说明了你的问题。您不能在导航堆栈中创建任何循环,最好将它们放在树状结构中。如果您仍然愿意使用额外的后退按钮,请使用以下代码:
private void btnGoBack_Click(object sender, RoutedEventArgs e)
{
//your additional code here
NavigationService.GoBack();
}
这将从后堆栈中删除一个条目。但是,仍有可能用户点击硬件返回键,在这种情况下,您的附加代码将不会被执行。更好的选择是使用PhoneApplicationPage.OnBackKeyPress method后退按钮。
protected override void OnBackKeyPress(CancelEventArgs e)
{
base.OnBackKeyPress(e);
//your additional code here
}
系统将处理后台堆栈,您将能够完成您正在寻找的内容。