Цель лекции: Рассмотрение аппаратных средств смартфонов на основе данной платформы, разбор применения всех возможностей данных устройств. Изучение работы кнопки "Назад".
Первоначальные версии устройств Windows Phone 7 будут иметь экран одного размера. (В будущем ожидается использование еще одного размера экрана.) Присутствие многих аппаратных возможностей гарантируется на каждом устройстве.
(рис 3.1) Кнопки панели
На фронтальной части телефона имеется дисплей, поддерживающий мультисенсорный ввод, и три кнопки, как правило, располагающиеся под дисплеем. Наименование этих кнопок в порядке слева направо:
Первоначальные версии устройств Windows Phone 7 имеют экран размером 480x800 пикселей. В будущем ожидается также применение экранов размером 320x480 пикселей. Никаких других вариантов для Windows Phone 7 не планируется, поэтому очевидно, что эти два размера экрана играют очень важную роль в разработке телефона.
Теоретически, лучше всего создавать программы, которые самостоятельно адаптируются к любому размеру экрана. Но это не всегда возможно, в частности, для игр. Вероятнее всего, приложения будут ориентироваться на эти два размера экрана, что будет реализовано в виде различных фрагментов кода и разных XAML-файлов для компоновки, которая зависит от размеров экрана.
Как правило, мы будем ссылаться на эти два размера, как на "большой" и "маленький" экран. Наибольший общий знаменатель горизонтального и вертикального размеров обоих экранов – 160, т.е. их можно изобразить с помощью квадратов со стороной 160 пикселов:
(рис 3.2) Экраны
Мы рассматриваем экраны в портретном режиме, потому что обычно именно так ориентированы экраны смартфонов. Для сравнения, экран оригинального
Конечно, телефон можно перевернуть горизонтально и получить экран в альбомном режиме. Некоторые программы могут требовать определенной ориентации экрана телефона, другие будут более гибкими.
Разработчик полностью контролирует, в какой мере создаваемое им приложение поддерживает ориентацию экрана. По умолчанию приложения Silverlight отображаются в портретном режиме, но можно сделать так, чтобы они самостоятельно приспосабливались к изменениям ориентации экрана. Специально для целей определения изменения ориентации предусмотрены новые события, а некоторые изменения обрабатываются автоматически. Для сравнения, разработчики игр обычно задают конкретную ориентацию экрана пользователя. Программы на XNA используют альбомный режим по умолчанию, но это свойство легко переопределить.
В портретном режиме маленький экран равен половине старого VGA-экрана (т.е. 640x480).
В альбомном режиме большой экран имеет размеры, соответствующие так называемому
Как и во многих современных телефонах и
Продолжительность автономной работы имеет первостепенную важность для мобильных устройств, поэтому эта характеристика ОСИД-дисплеев предполагает применение преимущественно черных фонов с редкими графическими элементами и контрастных шрифтов. Независимо от этого пользователи Windows Phone 7 могут выбирать между двумя основными цветовыми темами: светлый текст на темном фоне или темный текст на светлом фоне.
Пользовательский ввод для программ Windows Phone 7 будет осуществляться посредством мультисенсорного ввода. Экраны поддерживают технологию емкостного касания. Это означает, что они отвечают только на прикосновение человека, но не реагируют на касание стилусом или другие формы давления. touch Экраны устройств Windows Phone 7 должны распознавать одновременное касание как минимум в четырех точках.
Аппаратные клавиатуры необязательны. Необходимо предполагать, что дизайн телефонов может быть разным, поэтому при использовании клавиатуры экран может быть либо в портретном, либо в альбомном режиме. Программа на Silverlight, использующая ввод с клавиатуры, должна реагировать на изменения ориентации экрана, чтобы пользователь мог просматривать экран и использовать клавиатуру. Также предоставляется экранная клавиатура, которую в кругах Windows-пользователей называют
Давайте рассмотрим навигацию между страницами в Windows Phone 7 Silverlight приложениях. Данная тема важна по 2 причинам. Во-первых, Windows Phone 7 приложения практически всегда состоят из нескольких страниц, а во-вторых все телефоны на Windows Phone 7 имеют аппаратную кнопку "Назад". Это позволяет пользователю легко возвращаться на предыдущую страницу. Чуть позже мы поговорим о кнопке "Назад" более подробно.
Навигация между страницами на телефоне напоминает таковую в Web приложениях. При работе с телефоном, у нас есть больший контроль над навигацией, но с точки зрения пользователя различия минимальны. Более того, любое Silverlight приложение для Windows Phone 7 состоит как минимум из одной страницы, тогда как традиционные Silverlight приложения состоят как минимум из одного пользовательского элемента управления , внутри которого может находится фрейм для навигации между страницами.
Создадим новое приложение, подобно тому, как делали это на прошлой лекции. Назовём его Food shop. Из названия вы поняли что это магазин еды. Давайте создадим несколько страниц с категориями еды и на главной странице сделаем ссылки на них.
Чтобы добавить новые страницы в приложение нажмите в верхнем меню Project затем Add New Item и в открывшемся окне щёлкните на Windows Phone Portrait Page далее Add.
(рис 3.3) Добавление новой страницы в приложение
В списке файлов справа появится файлы Page1.xaml и Page1.xaml.cs, отвечающие за работу нашей страницы. Добавим ещё три страницы. Изменим на каждой странице заголовок так, чтобы пользователь смог понять на какой странице он находится.
Перейдём к XAML коду страницы Pasta.xaml и изменим значение свойства "Text" текстового блока с именем "PageTitle" на "Овощи":
<TextBlock x:Name="PageTitle" Text="Овощи" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
У нас будут четыре страницы: овощи, фрукты, мясо, молоко.
Изменим заголовки других страниц соответствующим образом.
Для создания ссылок между страницами мы можем использовать несколько различных подходов. Первым из них является элемент управления "HyperlinkButton" – кнопка-ссылка. Плюс данного подхода состоит в том, что нам не требуется писать C# код для навигации, а достаточно добавить одну строку в XAML разметку.
Перейдём к XAML коду страницы MainPage и в элемент управления Grid с именем "ContentPanel" добавим несколько ссылок, которые будут располагаться по вертикали одна за другой:
<StackPanel>
<HyperlinkButton Content="Овощи" NavigateUri="/Page1.xaml"/>
<HyperlinkButton Content="Фрукты" NavigateUri="/Page2.xaml"/>
<HyperlinkButton Content="Мясо" NavigateUri="/Page3.xaml"/>
</StackPanel>
(рис 3.4) Добавление ссылок на другие страницы
Запустим приложение. Попробуем нажать ссылку. Мы перемещаемся на созданные нами страницы.
Вместо использования элемента управления "HyperlinkButton" мы можем перейти на другую страницу, написав некоторый код на языке C#. Остановите отладку программы (Shift + F5). Давайте добавим после ссылок на странице MainPage.xaml кнопку:
<Button Content=" Молоко" />
Двойным кликом по кнопке в дизайнере перейдём к обработчику события нажатия данной кнопки:
private void Button_Click(object sender, RoutedEventArgs e)
Добавим код для перехода на другую страницу:
NavigationService.Navigate(new Uri("/Page4.xaml", UriKind.Relative));
Здесь используется специальный класс NavigationService, с помощью методов которого мы можем программно управлять навигацией: GoBack переходит к последней записи журнала переходов назад или создает исключение, если в журнале переходов назад нет записей.
Запустите приложение, нажмите на кнопку, и вы перейдёте на нужную страницу
(рис 3.5) Наше приложение
Давайте рассмотрим, как мы ещё можем использовать класс NavigationService для перехода на другую страницу из C# кода. Аппаратная кнопка "Назад" (Back) на телефоне была кратко упомянута, так как она просто работает, и для её работы в стандартном режиме нам ничего делать не требовалось. Однако данная тема заслуживает отдельного рассмотрения, так как мы можем обработать нажатие и переопределить то, что делает кнопка "Назад".
Данная кнопка работает практически также как аналогичная кнопка в браузере. Телефон записывает историю перемещений, и вы можете перейти назад по этой истории. Кроме того, как и в браузере, когда при переходах назад вы можете посетить несколько различных сайтов, на которых были до этого, в телефоне кнопка "Назад" работает для нескольких приложений и интерфейса самого телефона. То есть история переходов не привязана к конкретному запущенному приложению.
Для примера:
Теперь нажимая несколько раз кнопку "Назад" мы можем увидеть всё, с чем мы работали в обратном порядке.
Как вы могли заметить, при работе с браузерами в интернете кнопка "назад" обрабатывается приложением и переводит нас на предыдущую посещённую страницу. Мы можем обработать нажатие данной кнопки и переопределить то, что после него происходит также и в своих приложениях. Но нельзя забывать об ответственности. Не стоит вводить пользователя в заблуждение непредсказуемой функциональностью.
Например, если вы показываете на странице всплывающее сообщение, пользователь инстинктивно может нажать "назад", чтобы данное сообщение закрыть. В этом случае стоит обработать такое нажатие, чтобы закрывалось не всё ваше приложение, как в случае с необработанным нажатием, а только всплывающее сообщение. Или в случае с игрой, может иметь смысл использовать кнопку "назад" для паузы в игре.
Есть несколько правил обработки нажатия кнопки "назад":
Откроем пример из предыдущей статьи и на странице 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 отменили действие кнопки "по умолчанию".
Запустите приложение и проверьте его работу.
В данной лекции мы узнали, что:
Также мы научились создавать навигацию между страницами и переопределять действие, при нажатии кнопки "Назад".
Создайте программу, состоящую из нескольких страниц, сделайте возможным перейти с любой страницы на любую из других страниц.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.