我的场景是,当我导航到一个新页面时,需要一些时间来加载内容。在这段时间内,如果我按back键,它会因为某些原因抛出异常。因此,我希望在此期间停止后退键的行为,当内容完全加载时,用户可以按后退键,然后导航到上一页。我只想弄清楚,在微软的应用程序认证要求中是否允许这样做,这样我的应用程序就不会被拒绝。所以请回答我。
发布于 2013-04-10 14:24:39
你可以这样做:
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-10 14:33:31
在xaml中
<phone:PhoneApplicationPage
.....
BackKeyPress="PhoneApplicationPage_BackKeyPress">在代码中
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
}如果你需要,你也可以清理页面堆栈(可选)
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (NavigationService.CanGoBack)
{
while (NavigationService.RemoveBackEntry() != null)
{
NavigationService.RemoveBackEntry();
}
}
base.OnNavigatedTo(e);
}希望它能帮上忙
https://stackoverflow.com/questions/15918366
复制相似问题