如何知道从其他页面或任务导航?

时间:2013-07-15 15:05:23

标签: c# windows-phone-7 windows-phone-8 windows-phone

在我的应用中,我有一个页面,我从 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
    }
}

1 个答案:

答案 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
    }

第二种方法是检查NavigationModeNavigationEventArgs。如果值为Back,则表示您已从CameraCaptureTask导航回来(假设此页面未导航到任何其他页面)

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    if (e.NavigationMode == NavigationMode.Back)
    {
        // came back from CameraCaptureTask
    }
}