首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在wp7中停止硬件的后退按钮吗?

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

Stack Overflow用户
提问于 2013-04-10 14:18:19
回答 2查看 84关注 0票数 0

我的场景是,当我导航到一个新页面时,需要一些时间来加载内容。在这段时间内,如果我按back键,它会因为某些原因抛出异常。因此,我希望在此期间停止后退键的行为,当内容完全加载时,用户可以按后退键,然后导航到上一页。我只想弄清楚,在微软的应用程序认证要求中是否允许这样做,这样我的应用程序就不会被拒绝。所以请回答我。

EN

回答 2

Stack Overflow用户

发布于 2013-04-10 14:24:39

你可以这样做:

代码语言:javascript
复制
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;
    }
}

只要你不将用户锁定为永远不允许他回去,它就应该通过认证。

票数 1
EN

Stack Overflow用户

发布于 2013-04-10 14:33:31

在xaml中

代码语言:javascript
复制
<phone:PhoneApplicationPage
.....
BackKeyPress="PhoneApplicationPage_BackKeyPress">

在代码中

代码语言:javascript
复制
 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
 }

如果你需要,你也可以清理页面堆栈(可选)

代码语言:javascript
复制
protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        if (NavigationService.CanGoBack)
        {
            while (NavigationService.RemoveBackEntry() != null)
            {
                NavigationService.RemoveBackEntry();
            }
        }
        base.OnNavigatedTo(e);
    }

希望它能帮上忙

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15918366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档