2012-03-01 2 views
-2

Теперь у меня есть, когда пользователь нажимает на страницу, страница автоматически отправит пользователя в веб-страницу, которая откроет файл pdf.Навигационный контур и очистка задней стопки

Что происходит прямо сейчас, когда пользователь нажимает кнопку «Назад», он возвращается к исходной странице в течение секунды секунды, прежде чем перенаправляться обратно в pdf, как я его назначил (из-за функции onnavigateto)

Как я могу сделать так, чтобы при нажатии пользователем кнопки «Назад» в документе pdf приложение вернет пользователя на главную страницу?

Также, на главной странице, как я могу убедиться, что задняя стопка очищена? (Равно как и применение для выхода на MainPage, поэтому он не может вернуться в формате PDF.)

мой код до сих пор, я попытался ...

{ 
public partial class Page2 : PhoneApplicationPage 
{ 
public Page2() 
{ 
    InitializeComponent(); 
} 

//as soon as this page is opened, navigate/redirect it to the URL below 

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 

    WebBrowserTask task = new WebBrowserTask() { URL ="http://test.com/test.pdf"}; 
    task.Show(); 

} 

//when the user clicks the hardware back button, instead of taking them to the daily notices, which will send them back to brower 
// send the user to the main page 

protected override void OnBackKeyPress 

       (System.ComponentModel.CancelEventArgs e) 
{ 

    base.OnBackKeyPress(e); 

    new Uri("/MainPage.xaml", UriKind.Relative); 


} 

ответ

1

Прежде всего, почему ты нужна вторая страница, которая открывает только WebBrowserTask? Вы можете сделать это на главной странице.

Если вы все еще хотите открыть со второй страницы, вы можете переместить WebBrowserTask в конструктор и окружить его Dispatcher. Этот подход гарантированно, что WebBrowserTask будет вызываться только один раз после перехода на эту страницу (возможно, будут некоторые проблемы с гробницей). Или вы можете сохранить состояние до PhoneApplicationPage.State, чтобы обрабатывать, где был пользователь, и что вы должны открыть дальше.

Для очистки стека обратно вы можете использовать следующий код:

while (NavigationService.BackStack.Any()) 
{ 
    NavigationService.RemoveBackEntry(); 
} 
0

Вы должны обнаружить это на уровне приложений, а не на уровне страницы. Когда вы перенаправляете пользователя в PDF, ваше приложение приостанавливается. Когда они будут перемещаться назад, они возобновляются.

Шаблон Visual Studio предоставляет метод, который он вызывается, когда приложение продолжает:

// Code to execute when the application is activated (brought to foreground) 
// This code will not execute when the application is first launched 
private void Application_Activated(object sender, ActivatedEventArgs e) 
{ 
} 

В описанном выше способе можно установить флаг, который вы затем проверить, когда ваша страница переходите к ,, что указывает, что произошло возобновление.

Смежные вопросы