2016-12-03 3 views
1

в следующей ссылке страницы Microsoft:UWP модель осветление

https://msdn.microsoft.com/en-us/library/windows/apps/mt187344.aspx

..they выделить два типа навигационных моделей UWP приложений, одна страница (рекомендуется), а также мульти-страницы. Однако терминология, которую они используют, довольно неоднозначна (документы?) И противоречива. Может ли кто-нибудь объяснить мне именно различие между одностраничными и многостраничными приложениями? Ниже приводится отрывок, который не имеет особого смысла:.

«UWP приложения обычно используют одну страницу навигации модель одностраничный модель навигации использует одну страницу, чтобы сохранить контекст приложения и загрузки дополнительных данных и содержимое в центральном кадре, по мере необходимости. Вы по-прежнему разделяете ваше приложение на несколько файлов, но вместо перехода со страницы на страницу ваше приложение загружает другие документы в основную рамку страницы. Поскольку главная страница вашего приложения никогда не выгружается , код и данные никогда не разгружаются, что упрощает управление состоянием и обеспечивает более плавный переход анимации между страницами. Мы рекомендуем использовать одностраничная модель навигации ".

+0

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

+0

Спасибо @RaymondChen. Я все еще неясен. Если я реализую одностраничную и многостраничную страницы, как отличается реализация навигации? Кажется, они могут составлять одно и то же? Кроме того, «документ» реализуется как какой-то другой объект страницы? – Sean

+0

Вы перемещаете рамку внутри своей главной страницы, а не перемещаетесь по всему окну. И да, документ обычно является другой страницей. –

ответ

2

Я тоже прочитал эту страницу и немного смущен тем, что они означают. Вот мои мысли:

  • Когда я говорю «страница» Я имею в виду Windows.UI.Xaml.Controls.Page.

  • Они объясняют одностраничную модель как «использует одну страницу», но затем продолжают говорить «обеспечить более плавные переходные анимации между страницами». А? Я думал, что есть только одна страница, так почему бы вам перемещаться между несколькими страницами? Также он упоминает, что одностраничная модель в основном полагается на различные методы класса Frame, такие как Navigate, GoBack и GoForward, но вы не будете делать это (или даже использовать Frame) вообще, если бы у вас была только одна страница ,

  • Они также говорят, что одностраничная модель является рекомендуемым подходом. В самом деле? Если приложение не является очень простым только с одним экраном, то я не считаю, что большинство приложений будут использовать эту навигационную модель. Все шаблоны проектов создают фрейм для вас в ожидании написания многостраничного приложения.
  • Они не объясняют, что такое «документ». Для меня документ - это что-то вроде текстового документа (для текстового редактора или приложения для обработки текстов) или изображения (для приложения для графического редактора), но не все приложения - это приложения на основе документов (например, приложение Facebook)).

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

  • Когда приложение запускается, установить содержимое окна к экземпляру кадра. Это то, что шаблоны проектов уже делают для вас.
  • Каждый экран для вашего приложения может быть отдельной страницей и использовать навигационные методы кадра для перемещения между каждой страницей. Доступ к кадру можно получить на странице с помощью свойства Page.Frame.

В некоторых приложениях есть меню гамбургеров a-la для элемента управления SplitView. В этом случае SplitView будет содержимым окна, а рамка будет внутри SplitView.

Конечно, вы можете делать все, что вам нравится, что соответствует потребностям вашего приложения.

Обычно у вас нет рамки внутри страницы, если у вас нет очень настраиваемой структуры навигации.

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