【发布时间】:2015-07-15 14:36:04
【问题描述】:
您好,我正在构建一个 Windows Phone 8.1 应用程序,它从模板空白 Windows Phone 应用程序开始。 在应用程序中有两个页面 1. 主页 2. 详情页
正常的用户流程是用户点击磁贴 -> MainPage -> DetailPage 但是现在可以将 DetailPage 固定为辅助磁贴,因此如果在 App.xaml.cs OnLaunched 中单击辅助磁贴,我编写了如下代码:
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
//Init rot frame and default logic of Windows Phone
}
if (rootFrame.Content == null)
{
// if (e.Arguments has indicate app launched from tile)
//launch DetailPage
//else
//Launch MainPage
}
else
{
// if (e.Arguments has indicate app launched from tile)
//launch DetailPage
//else
//Launch MainPage
}
// Ensure the current window is active
Window.Current.Activate();
我知道上面的代码很粗糙,我正在改进它。
所以现在如果用户点击 DetailPage 上的硬件返回按钮,它会来到 MainPage。 为此,我使用了以下代码块。
if (Frame.CanGoBack)
{
e.Handled = true;
Frame.GoBack();
}
因此,如果用户通过单击辅助磁贴直接在 DetailPage 上结束,然后点击硬件返回按钮,我希望它返回 MainPage,但它直接退出应用程序,因为 MainPage 在 BackStack 上不存在。 我如何做到这一点?
我尝试使用
Frame.BackStack.Add
方法,但不明白如何使其正常工作。
【问题讨论】:
标签: c# windows navigation windows-runtime windows-phone-8.1