这是我的页面导航的场景:
MainPage (MP) <==> Locations (L) <==> AddLocation (AL)
我不希望用户在点击手机上的后退按钮时去 AddLocation。
如果他们在 MP 上并且他们回击,他们应该退出应用程序。
如果他们去 MP->L 并回击,他们应该去 MainPage。
如果他们去 MP->L->AL 并回击,他们应该去地点。
如果他们去 MP->L->AL->L 并回击,他们应该去 MainPage 而不是回到 AddLocations。
不对,我在 Common 文件夹中有标准导航助手,然后我将此代码添加到 Locations 页面以实现这一点:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
this.navigationHelper.OnNavigatedTo(e);
var bs = Frame.BackStack.Where(b => b.SourcePageType.Name == "MainPage").FirstOrDefault();
if (bs!= null)
{
Frame.BackStack.Clear();
Frame.BackStack.Add(bs);
}
}
这对我来说似乎是一个可怕的黑客攻击,我确信有一些我不知道的支持/设计的方法来做到这一点。我对 WinRT 和 Xaml 很陌生。