Три навигационных меню и круговая навигация в Windows Phone - PullRequest
0 голосов
/ 15 декабря 2011

В моем приложении для Windows Phone 7.5 (Mango) такая ситуация.Я должен использовать 3 кнопки меню, которые перемещаются в отдельный раздел приложения, как показано на рисунке ниже: enter image description here

Нажатие на А переводит на страницу А, На В - на В и то же на С.

Страница A отображает другие кнопки, которые переводят пользователя в определенный раздел / страницы.То же самое для страницы B и страницы C.

Проблема / вопрос: Я уверен, что это вызовет проблему круговой навигации при использовании BackButton.Я хотел бы знать лучший способ справиться с этим сценарием.

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

Pivot Page: Я не уверен, стоит ли мне использовать Pivot Control.

Другой сложный способ: использовать общую страницу и скрывать элементы управления на основе нажатия кнопкит.е. вместо перехода на новую страницу, просто покажите элемент управления, связанный с A или B или C, и спрячьте несвязанные вещи.Я не уверен, что это хороший способ, так как у меня мало изображений и анимаций, характерных для каждой страницы, и они кажутся сложными.

Ответы [ 3 ]

1 голос
/ 15 декабря 2011

Лучшим пользовательским интерфейсом будет использование Pivot.Пользователи ненавидят нажатия кнопок.Посмотрите, как работают все другие приложения для Windows Phone, и вы увидите, что считается интуитивно понятным / встроенным.

0 голосов
/ 25 декабря 2011

Вы можете обрабатывать / отменять / использовать событие нажатия кнопки «Назад», когда пользователь перемещается по определенному пути. Вы можете использовать NavigationServce.RemoveBackEntry () , чтобы удалить самую последнюю запись в журнале.

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

protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e){
    NavigationService.Navigate(new Uri("/PageA.xaml?fromPageC=true"));
}

public override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    if(e.NavigationMode == NavigationMode.New && NavigationContext.QueryString.ContainsKey("resultsInCircular")
{
    NavigationService.RemoveBackEntry(); // might have to repeat this a number of times        depending on the route that the user has taken
})
}
0 голосов
/ 19 декабря 2011

Pivout не соответствует моим потребностям из-за некоторых других проблем дизайна.

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

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