2011-06-15 2 views
3

Мне было интересно, как запустить домашнюю кнопку для входа в приложение, которая вернет вас с любой страницы на главную страницу. Насколько я помню, это не допускается Руководством по разработке WP7. Но я не могу найти никакой письменной информации об этом.Кнопка входа в приложение для входа в MainPage разрешена?

Кто-нибудь знает, где это написано?

ответ

0

Я считаю, что это разрешено до тех пор, пока навигационная панель назад возвращается к последней видимой странице.

1

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

Например, представьте себе приложение с 3 страницами, A, B & C. Скажите, страница C содержит кнопку «домой», чтобы вернуться на страницу A напрямую. Таким образом, ваша навигация стек может закончить тем, что, как это:

A -> B -> C -> A -> B -> C -> A .... 

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

  • Используйте non-linear navigation service для управления круговой навигации

  • Использование более наивный метод, где вы поддерживаете глобальный флаг, когда пользователь нажимает кнопку «домой», устанавливает этот флаг и вызывает NavigationService.GoBack(). Переопределите метод OnNavigatedTo на каждой странице, и если этот глобальный флаг установлен, снова вызовите NavigationService.GoBack(), пока не дойдете до главной страницы.

1

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

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

Если вам необходимо реализовать это, вы, вероятно, захотите использовать NonLinear Navigation Service, чтобы правильно управлять поведением кнопки «Назад».

2

кнопку Home, как правило, не рекомендуется, msdn source:

Размещение кнопки Home в пользовательском интерфейсе отличается от телефона навигационной модели Windows.

Реализация кнопки «Домой» в приложении может также вызвать вторую проблему, которая имеет гораздо более серьезные последствия для вашего приложения: она может непреднамеренно создать сценарий, в котором пользователь может застревать в бесконечном (или почти бесконечном) когда он или она использует как кнопку «Домой», так и кнопку «Назад» для навигации. Этот цикл может ухудшиться, если они используют кнопку «Назад» для перехода из одного приложения обратно через приложение, чтобы перейти к другому. Убедитесь, что эти проблемы не влияют на ваше приложение.

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

Но будет приложение, которые не могут иметь неглубокие навигации и требуют кнопок домой, например Google диск или Dropbox папки браузер - после углубляясь в структуру пользовательской папки нужно будет быстро перейти к главной странице. Руководящие принципы, msdn source:

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

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

В вашем MainPage:

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    while (NavigationService.BackStack.Any()) 
     NavigationService.RemoveBackEntry(); 
    base.OnNavigatedTo(e); 
} 
Смежные вопросы