你好。
应该在App.xaml.cs 中 InitializePhoneApplication()方法中加入RootFrame的Navigating事件处理:
private void InitializePhoneApplication()
{
if (phoneApplicationInitialized)
return;
RootFrame = new TransitionFrame();
RootFrame.Navigated += CompleteInitializePhoneApplication;
RootFrame.NavigationFailed += RootFrame_NavigationFailed;
RootFrame.Navigating += new NavigatingCancelEventHandler(RootFrame_Navigating);//加上Navigating的事件
phoneApplicationInitialized = true;
}
Navigating事件处理:
void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
{
if (e.Uri.ToString().Contains("MainPage.xaml"))
{
// 加入你的判断条件
if (youCondition)
{
e.Cancel = true; //取消事件
string uriString = "/AnotherPage.xaml";
var ur = new Uri(uriString, UriKind.Relative);
RootFrame.Dispatcher.BeginInvoke(delegate
{
this.RootFrame.Navigate(ur);
});
}
}
}
这里是最简单的处理,也就是当导航到MainPage时,判断你的条件是否成立,如成立,则跳转到其他页面。