Россия, г. Москва |
Аппаратные средства устройств, поддерживающих Windows Phone 7
Аппаратная кнопка "Назад"
Давайте рассмотрим, как мы ещё можем использовать класс NavigationService для перехода на другую страницу из C# кода. Аппаратная кнопка "Назад" (Back) на телефоне была кратко упомянута, так как она просто работает, и для её работы в стандартном режиме нам ничего делать не требовалось. Однако данная тема заслуживает отдельного рассмотрения, так как мы можем обработать нажатие и переопределить то, что делает кнопка "Назад".
Данная кнопка работает практически также как аналогичная кнопка в браузере. Телефон записывает историю перемещений, и вы можете перейти назад по этой истории. Кроме того, как и в браузере, когда при переходах назад вы можете посетить несколько различных сайтов, на которых были до этого, в телефоне кнопка "Назад" работает для нескольких приложений и интерфейса самого телефона. То есть история переходов не привязана к конкретному запущенному приложению.
Для примера:
- Запустим наше приложение.
- Нажмём на кнопку "Старт".
- Откроем настройки телефона.
- Ещё раз нажмём на "Start".
- Ещё раз запустим наше приложение.
Теперь нажимая несколько раз кнопку "Назад" мы можем увидеть всё, с чем мы работали в обратном порядке.
Переопределение функциональности кнопки "Назад"
Как вы могли заметить, при работе с браузерами в интернете кнопка "назад" обрабатывается приложением и переводит нас на предыдущую посещённую страницу. Мы можем обработать нажатие данной кнопки и переопределить то, что после него происходит также и в своих приложениях. Но нельзя забывать об ответственности. Не стоит вводить пользователя в заблуждение непредсказуемой функциональностью.
Например, если вы показываете на странице всплывающее сообщение, пользователь инстинктивно может нажать "назад", чтобы данное сообщение закрыть. В этом случае стоит обработать такое нажатие, чтобы закрывалось не всё ваше приложение, как в случае с необработанным нажатием, а только всплывающее сообщение. Или в случае с игрой, может иметь смысл использовать кнопку "назад" для паузы в игре.
Есть несколько правил обработки нажатия кнопки "назад":
- Нажатие кнопки должно означать для пользователя возвращение в состояние предшествующее текущему.
- Если пользователь нажимает кнопку "назад" второй раз подряд, следует совершить стандартное действие.
- Использование кнопки "назад" для паузы в игре является прекрасной идеей, но если пользователь нажимает данную кнопку второй раз, значит, он действительно хочет перейти назад, а не поставить игру на паузу.
Откроем пример из предыдущей статьи и на странице Page1.xaml и изменим событие происходящее при нажатии кнопки "Назад".
Для этого в C# коде (файл Page1.xaml.cs) после кода
public Page1() { InitializeComponent(); }
добавим:
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e) { NavigationService.Navigate(new Uri("/page4.xaml", UriKind.Relative)); e.Cancel = true; }
В данном примере при нажатии кнопки "назад" мы перейдём на заданную страницу - page4.xaml, для этого мы использовали метод NavigationService.Navigate в котором указали ссылку перехода и следующей строчкой e.Cancel = true отменили действие кнопки "по умолчанию".
Запустите приложение и проверьте его работу.
Ключевые термины
Soft Input Panel (SIP)— Панель функционального ввода, также называемая экранной клавиатурой. Позволяет вводить текстовую информацию при помощи сенсорного экрана.
Органический светодиод (англ. Organic Light-Emitting Diode (OLED) органический светоизлучающий диод (ОСИД)) — полупроводниковый прибор, изготовленный из органических соединений, который эффективно излучает свет, если пропустить через него электрический ток.
Краткие итоги
В данной лекции мы узнали, что:
- устройства создаваемые под работу с Windows Phone 7 будут иметь схожую конфигурацию и соответствовать минимальным требованиям;
- изначально планируется выпуск устройств с разрешениями:
- 480x800;
- 320x480;
- на любом устройстве для Windows Phone 7 на панели будет минимум три кнопки, это:
- Back (Назад) ;
- Start (Пуск) ;
- Search (Поиск);
Также мы научились создавать навигацию между страницами и переопределять действие, при нажатии кнопки "Назад".
Набор для практики
Упражнения
Создайте программу, состоящую из нескольких страниц, сделайте возможным перейти с любой страницы на любую из других страниц.