C# 如何将页面添加到导航堆栈?(Windows Phone)
当我导航到Page1.xaml时,我有一个空的导航堆栈,这是我需要添加的内容C# 如何将页面添加到导航堆栈?(Windows Phone),c#,silverlight,windows-phone-7,silverlight-4.0,silverlight-3.0,C#,Silverlight,Windows Phone 7,Silverlight 4.0,Silverlight 3.0,当我导航到Page1.xaml时,我有一个空的导航堆栈,这是我需要添加的内容 protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e){} 要将Page2.xaml添加到导航堆栈中(仅当我按下“返回”按钮时,我需要将日期导航到Page2.xaml)如果我理解正确,您希望在用户按下“返回”按钮时导航到Page2.xaml,对吗 您必须使用BackKeyPressed事件来实现该功能
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e){}
要将Page2.xaml添加到导航堆栈中(仅当我按下“返回”按钮时,我需要将日期导航到Page2.xaml)如果我理解正确,您希望在用户按下“返回”按钮时导航到Page2.xaml,对吗 您必须使用BackKeyPressed事件来实现该功能,如下所示:
public MainPage()
{
InitializeComponent();
this.BackKeyPress += new EventHandler<System.ComponentModel.CancelEventArgs>(MainPage_BackKeyPress);
}
void MainPage_BackKeyPress(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true;
Dispatcher.BeginInvoke(() =>
{
NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative));
});
}
public主页()
{
初始化组件();
this.BackKeyPress+=新的事件处理程序(主页\u BackKeyPress);
}
void MainPage_BackKeyPress(对象发送方,System.ComponentModel.CancelEventArgs e)
{
e、 取消=真;
Dispatcher.BeginInvoke(()=>
{
NavigationService.Navigate(新Uri(“/Page2.xaml”,UriKind.Relative));
});
}
但请注意,更改后退按钮的默认行为可能导致应用程序认证失败 我认为这会令人困惑。为什么要这样做?您知道如何实现吗?不知道,但非线性导航服务可能有助于认证要求说明,按第一个屏幕上的“后退”按钮必须关闭应用程序。它还表示,按下后退按钮必须将应用程序返回到上一页或返回到后堆栈中的任何上一页。因此,将页面添加到后堆栈中几乎肯定会导致认证失败。