有时候,在应用第一次被打开时,可能因为某些条件而需要跳转到其他页面,而不是 MainPage.xaml 页面。
解决方法,在 App.xaml.cs 页面中的 InitializePhoneApplication 方法中,注册 RootFrame 的 Navigating事件 :
// 当请求新的导航时发生。 RootFrame.Navigating += RootFrame_Navigating;
在相应的方法中,判断跳转的URI,如果满足某些条件,则切换跳转:
void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e) { //导航离开该应用时 e.Uri 为 app://external/
if (e.Uri.ToString().Contains("/MainPage.xaml")) { //取消默认的跳转 e.Cancel = true; //页面的跳转代码必须在 UI 线程进行执行,否则执行无效 RootFrame.Dispatcher.BeginInvoke(() => { RootFrame.Navigate(new Uri("/Page1.xaml", UriKind.Relative)); }); } }
程序运行,不是跳转到默认的 MainPage.xaml 页面: