WP7 SplashPage Навигация проблема - кнопка назад и выход - PullRequest
0 голосов
/ 25 августа 2011

У меня есть что-то вроде этого:

SplashPage -> MainPage -> Настройки -> О

SplashPage - это только страница с моим логотипом и анимацией в течение примерно 1 секунды, а затем я перенаправляю своего пользователя на MainPage. Первая проблема заключалась в том, что когда я нажимал кнопку «Назад» на главной странице, я возвращался на заставку, и это было нехорошо. Я решил это с помощью этого кода:

private bool navigateBack;

        public SplashPage()
        {
            InitializeComponent();

            navigateBack = false;
        }

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            if (navigateBack)
            {
                this.NavigationService.GoBack();
            }
            else
            {
                navigateBack = true;
                base.OnNavigatedTo(e);
            }
        }

Таким образом, при нажатии кнопки «Назад» пользователь больше никогда не увидит заставку, но у меня странная проблема. Приложение выдает исключение навигации, что свойство CanGoBack имеет значение false и приложение завершается. Это правда, что я хочу выйти из приложения, но не используя исключения, потому что я не пройду сертификацию на рынке.

У меня вопрос, как вернуться обратно из MainPage и выйти из приложения, но без исключения. Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 25 августа 2011

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

1 голос
/ 25 августа 2011

Прочтите следующую информацию об этом сценарии и о том, как к нему приблизиться:

http://blogs.msdn.com/b/ptorr/archive/2010/08/28/introducing-the-concept-of-places.aspx
и
http://blogs.msdn.com/b/ptorr/archive/2010/08/28/redirecting-an-initial-navigation.aspx

0 голосов
/ 27 августа 2011

в манго вы можете использовать

NavigationService.RemoveBackEntry()

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

так что если у вас есть заставка на главной странице, вы бы вызвали функцию дважды

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

...