Опубликован: 15.06.2012 | Доступ: свободный | Студентов: 1546 / 109 | Оценка: 4.19 / 3.63 | Длительность: 07:02:00
Специальности: Программист
Лекция 3:

Аппаратные средства устройств, поддерживающих Windows Phone 7

< Лекция 2 || Лекция 3: 12 || Лекция 4 >

Аппаратная кнопка "Назад"

Давайте рассмотрим, как мы ещё можем использовать класс NavigationService для перехода на другую страницу из C# кода. Аппаратная кнопка "Назад" (Back) на телефоне была кратко упомянута, так как она просто работает, и для её работы в стандартном режиме нам ничего делать не требовалось. Однако данная тема заслуживает отдельного рассмотрения, так как мы можем обработать нажатие и переопределить то, что делает кнопка "Назад".

Данная кнопка работает практически также как аналогичная кнопка в браузере. Телефон записывает историю перемещений, и вы можете перейти назад по этой истории. Кроме того, как и в браузере, когда при переходах назад вы можете посетить несколько различных сайтов, на которых были до этого, в телефоне кнопка "Назад" работает для нескольких приложений и интерфейса самого телефона. То есть история переходов не привязана к конкретному запущенному приложению.

Для примера:

  1. Запустим наше приложение.
  2. Нажмём на кнопку "Старт".
  3. Откроем настройки телефона.
  4. Ещё раз нажмём на "Start".
  5. Ещё раз запустим наше приложение.

Теперь нажимая несколько раз кнопку "Назад" мы можем увидеть всё, с чем мы работали в обратном порядке.

Переопределение функциональности кнопки "Назад"

Как вы могли заметить, при работе с браузерами в интернете кнопка "назад" обрабатывается приложением и переводит нас на предыдущую посещённую страницу. Мы можем обработать нажатие данной кнопки и переопределить то, что после него происходит также и в своих приложениях. Но нельзя забывать об ответственности. Не стоит вводить пользователя в заблуждение непредсказуемой функциональностью.

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

Есть несколько правил обработки нажатия кнопки "назад":

  • Нажатие кнопки должно означать для пользователя возвращение в состояние предшествующее текущему.
  • Если пользователь нажимает кнопку "назад" второй раз подряд, следует совершить стандартное действие.
  • Использование кнопки "назад" для паузы в игре является прекрасной идеей, но если пользователь нажимает данную кнопку второй раз, значит, он действительно хочет перейти назад, а не поставить игру на паузу.

Откроем пример из предыдущей статьи и на странице 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 (Поиск);

Также мы научились создавать навигацию между страницами и переопределять действие, при нажатии кнопки "Назад".

Набор для практики

Упражнения

Создайте программу, состоящую из нескольких страниц, сделайте возможным перейти с любой страницы на любую из других страниц.

< Лекция 2 || Лекция 3: 12 || Лекция 4 >