我的Windows phone c#based app中有一个主页或登录页面,用户输入登录详细信息,登录成功后用户被重定向到page2。在这里,用户将看到一个包含少量项目的列表框。从此列表框中选择一个项目后,将打开一个名为“Threadx”的新页面。(其中x是单击列表框中的x项目时打开的每个页面)
当用户在此Thread页面“Threadx”上时,他可能会收到Toast通知,并且线程会在该线程上使用新的回复或答案进行更新。
但是当用户点击后退按钮时,“ThreadX”页面没有关闭,而是进入之前状态较少的消息,依此类推,直到应用程序关闭为止。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (e.NavigationMode == NavigationMode.Back)
{
return;
}
}
我想知道在点击后退按钮时是否可以关闭此“Threadx”页面而不影响其他“Threadx + 1”,“Threadx + 2”......“Threadx + n”页面。
任何帮助都会非常感激。
答案 0 :(得分:5)
通常情况下,当您离开页面并导航到另一个页面时,窗口会将页面保留在其堆栈中。如果您想按下后退按钮导航到上一页,您可以执行以下操作:
将以下行添加到OnNavigatedTo
方法:
Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
添加HardwareButtons_BackPressed
方法的定义:
private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
e.Handled = true;
if (Frame.CanGoBack)
Frame.GoBack();
}
不要忘记将Windows.Phone.UI.Input
添加到命名空间列表中。
答案 1 :(得分:-1)
我得到它的另一种方法是在我的"线程"中的onnavigateto方法中使用下面的代码。页面,它对我有用。让我知道是否有一种优雅的方式或更好的方式。
if (e.NavigationMode == NavigationMode.Back)
{
NavigationService.Navigate(new Uri("/View/Page2.xaml", UriKind.Relative));
}