在我的应用中,我有一个页面,我从 MainPage.xaml 导航。从该页面启动CameraCaptureTask
。
我想知道,在页面加载时,如何知道我是否已从 MainPage.xaml 导航,或者它是从CameraCaptureTask
返回的。
使用NavigationService.BackStack.FirstOrDefault()
没有帮助,因为正如预期的那样,它会返回 MainPage.xaml 。
我想要像:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (/*Navigated-from-MainPage-but-not-from-CameraCaptureTask*/)
{
// Do Something
}
}
答案 0 :(得分:2)
您可以通过以下两种方式之一完成此操作。第一个是收听Completed
的CameraCaptureTask事件 CameraCaptureTask task = new CameraCaptureTask();
task.Completed += new EventHandler<PhotoResult>(OnCaptureTaskCompleted);
task.Show();
...
void OnCaptureTaskCompleted(object sender, PhotoResult e)
{
// Navigated back or took a picture
}
第二种方法是检查NavigationMode的NavigationEventArgs。如果值为Back,则表示您已从CameraCaptureTask导航回来(假设此页面未导航到任何其他页面)
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (e.NavigationMode == NavigationMode.Back)
{
// came back from CameraCaptureTask
}
}