Windows Phone 8 NavigationService.Navigate throws a NullRefe

本文关键字:throws NullRefe Navigate NavigationService Phone Windows | 更新日期: 2023-09-27 18:22:07

我正在为WindowsPhone 8开发一个C#项目。当用户停用应用程序(即转到主菜单)时,我会停止一些计时器并保存一些东西。这很好用。但当用户重新激活应用程序时,我想将用户导航到暂停屏幕。

 NavigationService.Navigate(new Uri("/Pause.xaml", UriKind.Relative));

该代码很简单,在应用程序未停用时运行非常完美。但当用户重新激活应用程序时,它会抛出一个NullReferenceException。

我已经尝试了几种方法,例如:

    public void pause_for_activated()
    {
        this.Loaded += navigate_pause();
    }
    private RoutedEventHandler navigate_pause()
    {
        NavigationService.Navigate(new Uri("/Pause.xaml", UriKind.Relative));
        return navigate_pause();
    }

当我启动应用程序而不自动导航到暂停屏幕,然后按下按钮进行导航时,它就工作了。我现在的问题是,我什么时候可以自动导航,以及如何做到这一点?

事先,我已经谢谢你了。

Windows Phone 8 NavigationService.Navigate throws a NullRefe

直到现在我还没有得到答案,但我找到了一个适合我的解决方案,所以我决定把它放在这里。

 Loaded += navigate_pause();

 private RoutedEventHandler navigate_pause() 
 {
        Dispatcher.BeginInvoke(() =>
        {
            ((PhoneApplicationFrame)Application.Current.RootVisual).Navigate(new Uri("/Pause.xaml", UriKind.Relative));
        });
        return null;
 }