我使用Frame.Navigate
向前导航但是当我按下手机上的硬件后退键时,我最终在开始屏幕上而不是我刚刚访问过的页面。
可能出现什么问题?
答案 0 :(得分:1)
问题背后的原因是,您正在创建一个空白页面。如果您要创建一个空白页面,则应该定义在触发后退按钮时应用程序必须执行的操作。
更好的是,考虑添加“基本页面”。它本质上会有背斜。如果您从MainPage
导航到Basic Page
,当您在Basic Page
按下后退按钮时,它将返回MainPage
。
我希望这可以解决你的问题!
如果你想在你的应用程序中使用Blank Page
,你需要在你想要覆盖后退按钮的页面上使用这样的内容:
在标题中添加:
using Windows.Phone.UI.Input;
然后在你的构造函数中:
HardwareButtons.BackPressed += HardwareButtons_BackPressed;
在代码中的任何位置添加:
void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
HardwareButtons.BackPressed -= HardwareButtons_BackPressed;
this.Frame.Navigate(typeof(MainPage));
e.Handled = true;
}
答案 1 :(得分:0)
您可能忘记使用通用应用模板中包含的NavigationHelper
。
你应该在每一页上都这样使用它:
NavigationHelper _navigationHelper;
public LoginPage()
{
this.InitializeComponent();
_navigationHelper = new NavigationHelper(this);
}