这是我的页面导航方案:
主页 (MP) <===> 地点 (L) <===> 添加地点 (AL)
我不希望用户在按下手机的返回按钮时进入添加地点。
如果他们在主页上并按下返回键,他们应该退出应用程序。
如果他们从主页到达 L 并按下返回键,则应该回到主页。
如果他们从主页到达 L-> AL 并按下返回键,则应该回到地点。
如果他们从主页到达 L-> AL-> L 并按下返回键,则应该回到主页而不是回到添加地点。
现在,我已经在 Common 文件夹中添加了标准的导航助手,然后我在 Locations 页面中添加了这段代码来实现此功能:
主页 (MP) <===> 地点 (L) <===> 添加地点 (AL)
我不希望用户在按下手机的返回按钮时进入添加地点。
如果他们在主页上并按下返回键,他们应该退出应用程序。
如果他们从主页到达 L 并按下返回键,则应该回到主页。
如果他们从主页到达 L-> AL 并按下返回键,则应该回到地点。
如果他们从主页到达 L-> AL-> L 并按下返回键,则应该回到主页而不是回到添加地点。
现在,我已经在 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。