Навигация в приложениях Windows Phone 7
Статья устарела
Данная статья была написана в начале 2012 г., в эпоху Windows Phone 7.
Примечание. Данная статья является переводом статьи Frame and Page Navigation Overview for Windows Phone. Если вы обнаружите неточности перевода - сообщите, пожалуйста, в комментариях к этой статье внизу страницы.
Приложения телефона Windows Phone базируются на модели страниц Silverlight, в которой пользователи могут перемещаться между экранами c содержимым, а также возвращаться назад, используя кнопку «Назад» на аппарате. Эта модель позволяет разработчикам:
- Легко создавать приложения, которые хорошо вписываются в навигационную модель телефона Windows Phone;
- Реализовать переходы между страницами, соответствующие стилю Windows Phone;
Основные элементы включают в себя контейнер элементов управления, называемый PhoneApplicationFrame, который может содержать в себе PhoneApplicationPage. Платформа приложений Windows Phone содержит классы фрейма и страниц для облегчения навигации по отдельным разделам содержимого. Можно создать столько различных страниц, сколько необходимо для представления содержимого в приложении, и затем переходить на эти страницы из фрейма. Следующий рисунок иллюстрирует фрейм и иерархию страниц для приложения:
Важное примечание:
При разработке приложения, необходимо использовать типы PhoneApplicationFrame и PhoneApplicationPage, а не стандартные типы Silverlight Frame и Silverlight Page. Для получения дополнительной информации см. классы PhoneApplicationFrame и PhoneApplicationPage в описании библиотеки классов.
Фреймы
Фрейм так интегрируется в Windows Phone, что воспринимается как обычное приложение. В приложении всегда может быть только один фрейм.
Фрейм имеет следующие особенности:
- Предоставляет доступ к свойствам содержащейся в нем страницы, например к ориентации экрана;
- Предоставляет рабочую область, в которой отображаются страницы;
- Предоставляет объект NavigationService, облегчающий межстраничную навигацию;
- Содержит место для строки состояния и панели приложения.
Примечание:
Именно фрейм получает события Obscured или Unobscured, обозначающие возникновение определенных ситуаций, таких как телефонные звонки. Для получения дополнительной информации см. Obscured и Unobscured.
Страницы
Страница заполняет всю область фрейма. При необходимости страница может отображать панель приложения.
Строка состояния и панель приложения
Строка состояния и панель приложения являются оформительскими элементами приложения. Рабочая область представляет собой окно, в котором может отрисовываться приложение, а видимая рабочая область - пространство, видимое пользователю. Содержимое приложения может выходить за пределы видимой рабочей области, например, при помощи вертикальной прокрутки.
Строка состояния
Строка состояния, место для которой зарезервировано в рабочей области приложения, отображает информацию системного уровня. Строка состояния отображает уведомления о важной для пользователя информации, а пользователь может кликать по ней. Строка состояния является эквивалентом системного трея.
Строка состояния имеет следующие особенности:
- Видимость, прозрачность и цвет строки состояния могут быть изменены из приложения.
- Индикатор прогресса выполнения, находящийся в строке состояния может быть использован приложением для отображения прогресса.
Панель приложения
На панели приложения размещаются наиболее востребованные функции. Для остальных функций приложение содержит отдельное меню, которое доступно из панели приложения.
Видимость, прозрачность и цвет панели приложения могут быть изменены приложением.
Ориентация
Windows Phone поддерживает как вертикальную, так и горизонтальную ориентации. При необходимости, приложения должны поддерживать обе ориентации, но по умолчанию реализуется только вертикальная ориентация. Если определенная страница в приложении поддерживает как вертикальную, так и горизонтальную ориентацию, пользователь может переключаться между ними, физически поворачивая устройство. Напрямую переключать ориентацию из приложения (в коде) невозможно, так как свойство ориентации доступно только для чтения. Единственный путь, который позволяет выбрать нужную ориентацию – поставить ее как единственно доступную в свойстве SupportedOrientations.
В Windows Phone не поддерживается перевернутая горизонтальная или вертикальная ориентации. Приложения, нуждающиеся в использовании этой функции, могут использовать акселерометр или датчик поворачивания экрана устройства; однако, оформительские элементы (строка состояния и панель приложения) останутся в стандартном вертикальном режиме.
Страница имеет свойство Orientation и свойство SupportedOrientations. Если пользователь переходит на страницу, свойство SupportedOrientations которой не включает в себя текущую ориентацию, происходит автоматическое переключение ориентации на поддерживаемую.
Кнопка «назад»
Кнопка «назад» на аппарате используется для возврата в пределах одного приложения или между приложениями. Кроме того, с помощью кнопки «назад» можно закрыть экранную клавиатуру, меню, диалоги, перейти на предыдущую страницу или даже переключаться между приложениями. Однако основное использование связано с переходом от текущего экрана к предыдущему экрану.
Важное примечание:
Существует несколько требований, связанных с использованием кнопки «назад», которым должно отвечать приложение для того, чтобы пройти сертификацию и иметь право на внесение в Windows Phone Marketplace. Дополнительную информацию см. на Technical Certification Requirements.
Примечание: Примечание: Событие Navigating позволит вам отменять перемещение, но только в том случае, если переход был инициирован API-вызовом. Если он было инициирован с помощью кнопок «назад» или «пуск», вы не cможете отменить переход. В случае инициации кнопкой «назад» перемещение можно отменить, используя метод OnBackKeyPress (CancelEventArgs), но в случае использования кнопки «пуск» переход не может быть отменен.