我的场景是,当我导航到新页面时,加载内容需要一些时间。在这段时间内,如果我按返回键,它会由于某种原因引发异常。所以我想在这么长的时间内停止后退键的行为,当内容完全加载时,用户可以按后退键,然后导航到上一页。我只是想明确一点,微软的应用程序认证要求是否允许,这样我的应用程序就不会被拒绝。所以请给出答案。
问问题
84 次
2 回答
1
你可以这样做:
bool flag = false;
// Assuming this is where you can handle executions during loading
loading()
{
flag = true;
}
// After loading is completed
loadComplete()
{
flag = false;
}
// Handle back button
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
if (flag)
{
e.Cancel = true;
}
}
只要你不锁定用户永远不允许他回去,它应该通过认证。
于 2013-04-10T06:24:38.987 回答
0
In xaml
<phone:PhoneApplicationPage
.....
BackKeyPress="PhoneApplicationPage_BackKeyPress">
In code
private void PhoneApplicationPage_BackKeyPress(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = CouldStepBack();
}
private bool CouldStepBack()
{
// todo return true, when load comleted
// else return false
}
And if you need you also can clean stack of pages (optional)
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (NavigationService.CanGoBack)
{
while (NavigationService.RemoveBackEntry() != null)
{
NavigationService.RemoveBackEntry();
}
}
base.OnNavigatedTo(e);
}
Hope its help
于 2013-04-10T06:33:30.530 回答