0

在我的应用程序中,我有一个从MainPage.xaml导航的页面。ACameraCaptureTask从该页面启动。

我想知道,在页面加载时,我怎么知道我是从MainPage.xaml导航的,还是从 .xaml 导航回来的CameraCaptureTask

使用NavigationService.BackStack.FirstOrDefault()没有帮助,因为正如预期的那样,它返回MainPage.xaml

我想要类似的东西:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    if (/*Navigated-from-MainPage-but-not-from-CameraCaptureTask*/)
    {
        // Do Something
    }
}
4

1 回答 1

2

您可以通过以下两种方式之一完成此操作。首先是监听CameraCaptureTask的Completed事件

        CameraCaptureTask task = new CameraCaptureTask();
        task.Completed += new EventHandler<PhotoResult>(OnCaptureTaskCompleted);
        task.Show();

...

    void OnCaptureTaskCompleted(object sender, PhotoResult e)
    {
        // Navigated back or took a picture
    }

第二种方法是检查NavigationEventArgsNavigationMode。如果值为 Back,那么您知道您从 CameraCaptureTask 导航回来(假设此页面未导航到任何其他页面)

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    if (e.NavigationMode == NavigationMode.Back)
    {
        // came back from CameraCaptureTask
    }
}
于 2013-07-15T16:24:52.163 回答