Windows phone 7 我可以在wp7中停止硬件的后退按钮吗?

Windows phone 7 我可以在wp7中停止硬件的后退按钮吗?,windows-phone-7,Windows Phone 7,我的情况是,当我导航到一个新页面时,加载内容需要一些时间。在这段时间内,若我按back键,它会出于某种原因抛出异常。所以我想在这么长的时间内停止后退键行为,当内容完全加载时,用户可以按后退键,然后导航到上一页。我只是想澄清一下,微软的应用程序认证要求中是否允许这样做,这样我的应用程序就不会被拒绝。所以请给出答案。您可以这样做: bool flag = false; // Assuming this is where you can handle executions during loadin

我的情况是,当我导航到一个新页面时,加载内容需要一些时间。在这段时间内,若我按back键,它会出于某种原因抛出异常。所以我想在这么长的时间内停止后退键行为,当内容完全加载时,用户可以按后退键,然后导航到上一页。我只是想澄清一下,微软的应用程序认证要求中是否允许这样做,这样我的应用程序就不会被拒绝。所以请给出答案。

您可以这样做:

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;
    }
}
只要您不锁定用户,不允许他返回,它就应该通过认证。

在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);
    }