2014-04-03 36 views
0

我得到了这个问题,我似乎无法让它工作,我想在一个windows store项目中从App.xaml.cs导航到另一个页面,当没有网络时,但我不能这样做。 这里是代码Windows应用商店从App.xaml.cs导航?

sealed partial class App : Application 
{ 


    public App() 
    { 
     this.InitializeComponent(); 
     this.Suspending += OnSuspending; 
     NetworkInformation.NetworkStatusChanged += NetworkInformation_NetworkStatusChanged; 

    } 

    private void NetworkInformation_NetworkStatusChanged(object sender) 
    { 


     ConnectionProfile profile = 
      NetworkInformation.GetInternetConnectionProfile(); 

     if (profile.GetNetworkConnectivityLevel() >= 
      NetworkConnectivityLevel.InternetAccess) 
     { 
      // We have Internet, all is golden 
     } 
     else 
     { 

      DoThis(); 


     } 
    } 


    public async void DoThis() 
    { 
     var dispatcher = Windows.UI.Core.CoreWindow.GetForCurrentThread().Dispatcher; 

     await dispatcher.RunAsync(CoreDispatcherPriority.Normal,() => 
     { 
      Window.Current.Content = new Eroare(); 
     }); 
    } 


    protected override void OnLaunched(LaunchActivatedEventArgs args) 
    { 
     Frame rootFrame = Window.Current.Content as Frame; 

     // Do not repeat app initialization when the Window already has content, 
     // just ensure that the window is active 
     if (rootFrame == null) 
     { 
      // Create a Frame to act as the navigation context and navigate to the first page 
      rootFrame = new Frame(); 

      if (args.PreviousExecutionState == ApplicationExecutionState.Terminated) 
      { 
       //TODO: Load state from previously suspended application 
      } 

      // Place the frame in the current Window 
      Window.Current.Content = rootFrame; 
     } 

     if (rootFrame.Content == null) 
     { 
      // When the navigation stack isn't restored navigate to the first page, 
      // configuring the new page by passing required information as a navigation 
      // parameter 
      if (!rootFrame.Navigate(typeof(MainPage), args.Arguments)) 
      { 
       throw new Exception("Failed to create initial page"); 
      } 

     } 
     // Ensure the current window is active 
     Window.Current.Activate(); 
    } 




    /// <summary> 
    /// Invoked when application execution is being suspended. Application state is saved 
    /// without knowing whether the application will be terminated or resumed with the contents 
    /// of memory still intact. 
    /// </summary> 
    /// <param name="sender">The source of the suspend request.</param> 
    /// <param name="e">Details about the suspend request.</param> 
    private void OnSuspending(object sender, SuspendingEventArgs e) 
    { 
     var deferral = e.SuspendingOperation.GetDeferral(); 
     //TODO: Save application state and stop any background activity 
     deferral.Complete(); 
    } 
} 

请帮忙吗?

+0

在Eroare.xaml页我得到Windows.UI.Core.CoreWindow.GetForCurrentThread以下错误()调度程序:未将对象引用设置到对象的实例。 –

回答

0

试试这个,

var rootFrame = Window.Current.Content as Frame; 
rootFrame.Navigate(typeof(YourPage)); 
+0

我只有dispatcher.RunAsync()或dispatcher.RunIdleAsync(),没有任何工作。 –

+0

var rootFrame = Window.Current.Content as Frame; rootFrame.Navigate(typeof(YourPage)); –

+0

发出以下错误,var rootFrame = Window.Current.Content as Frame:Object引用未设置为对象的实例。 –