ashish123
ashish123

Reputation: 11

Can i stop back button of hardware in wp7?

My scenario is , When I navigate to a new page It takes some time to load the content. And for that duration of time, If I press back key it throws exception for some reason. So I want to stop the back key behaviour for that much duration and when content is fully loaded, user can press the back key and then navigate to previous page. I just want to be clear, Is it permitted in application certification requirement from microsoft so that my app could not get rejected. so please give answer.

Upvotes: 0

Views: 89

Answers (2)

Andrei Zhukouski
Andrei Zhukouski

Reputation: 3506

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

Upvotes: 0

Arjun Abhynav
Arjun Abhynav

Reputation: 543

You could do something like this:

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

As long as you don't lock the user to never allow him to go back, it should pass the certification.

Upvotes: 1

Related Questions