Зачем мне выходить из приложения Silverlight Phone? - PullRequest
4 голосов
/ 28 марта 2011

Это со ссылкой на Windows Phone 7 закрыть приложение

Что, если у меня есть Page-A -> Page-B (то есть Page-A разрешает навигацию к Page-B)Страница-B, у меня есть определенные элементы управления, которые переводят меня на страницу-C, страницу-D, страницу-E, страницу-F и т. Д.

Если я на странице-F, при нажатии клавиши возврата я хочупользователь, чтобы достигнуть Page-A (так, я переопределяю OnBackKeyPressed).Теперь, когда на странице A, если пользователь снова нажимает клавишу «назад», его снова переводят на страницу Page 100 B

. Поэтому я не могу выйти из приложения, когда пользователь нажимает клавишу возврата на странице A, и онзастрял между Page-A и Page-B при нажатии клавиши возврата

Это не соответствует опыту пользователя.

Из обсуждения я понимаю, что в Silverlight нет (правильного) способа выходаприложение.Итак, я неправильно проектирую приложение, где мне нужно показать много подстраниц, но я бы хотел, чтобы пользователь перешел на одну из главных страниц, переопределив клавишу возврата.

Ответы [ 3 ]

4 голосов
/ 28 марта 2011

Одна вещь, которую вы можете сделать, это вместо переопределения OnBackKeyPressed на странице F, переопределить метод OnNavigatedTo на странице B, чтобы пройти еще одну страницу через backstack к странице A. Таким образом, вы будете более естественно продвигаться вверх по стеку.Как вы обнаружили, если вы однажды переопределите клавишу возврата, чтобы перенаправить кого-то, есть большая вероятность, что вам придется делать это каждый раз.

Единственная проблема с этим решением состоит в том, что WP7 не имеет простогоспособ узнать, откуда вы только что пришли.Что я делаю, так это то, что каждый раз, когда я перехожу на новую страницу, я кеширую URI страницы, которую я покидаю.

2 голосов
/ 28 марта 2011

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

Не зная деталей того, чего вы пытаетесь достичь, трудно предложить альтернативу, но, возможно, вам стоит разобратьсядизайн вашего приложения, чтобы увидеть, можно ли избежать перехода от страницы F к странице A при нажатии клавиши «назад».

Размещение сведений о том, почему вы считаете это необходимым, может позволить другим предложить альтернативные реализации.

1 голос
/ 28 марта 2011

Если я правильно вас понял, вы столкнулись с проблемой круговой навигации. Другими словами, вы хотите, чтобы приложение закрывалось, когда вы переходите на «страницу-А». В этом случае вам обязательно следует проверить этот рецепт от Microsoft для работы с круговой навигацией:

Решение круговой навигации

Другим методом, который можно использовать, будет использование всплывающих окон вместо создания новых страниц, по которым пользователь может перейти, таким образом, вам не придется беспокоиться об обработке заднего стека.

Проверьте это Создание собственного всплывающего окна в WP7 .

Дайте мне знать, если это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...