Сенсорный пользовательский интерфейс
Цель работы: освоить методы работы с сенсорным экраном
Экранная клавиатура
Устройства, работающие под управлением Windows Phone не оснащают аппаратной клавиатурой. Такая тенденция наблюдается сейчас повсеместно, поэтому особую важность во взаимодействии с пользователем приобретает экранная клавиатура устройства. Такая клавиатура вызывается автоматически, когда пользователь входит в режим редактирования полей, предусматривающих текстовый ввод. Кроме того, сейчас разработчик для платформы Windows Phone не может создавать собственные варианты клавиатуры, однако, это ограничение компенсируется большим набором вариантов встроенной в систему экранной клавиатуры.
Для того, чтобы задать тип клавиатуры, которая отображается при попытке пользователя редактировать содержимое элемента управления, поддерживающего ввод текста, нужно настроить свойство этого элемента InputScope (Область вводимых данных). Сделать это можно как в XAML-разметке, так и в программном коде (http://msdn.microsoft.com/en-us/library/windowsphone/develop/gg521152%28v=vs.105%29.aspx). Существует много вариантов такой клавиатуры. При заполнении этого свойства, например, для текстового поля, можно воспользоваться либо окном свойств, где представлен список доступных вариантов, либо, при заполнении его в XAML-коде – подсказкой IntelliSense. Можно отметить некоторые варианты встроенной клавиатуры, которые используются чаще других. Эти варианты проиллюстрированы в проекте P15_1 на странице Keyboard.xaml, рис. 45.1., Листинг 45.1.
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <TextBox HorizontalAlignment="Left" Height="72" Margin="0,10,0,0" TextWrapping="Wrap" Text="Обычная клавиатура" VerticalAlignment="Top" Width="456"/> <TextBox HorizontalAlignment="Left" Height="72" Margin="0,87,0,0" TextWrapping="Wrap" Text="Цифровая клавиатура" VerticalAlignment="Top" Width="456" InputScope="Number"/> <TextBox HorizontalAlignment="Left" Height="72" Margin="0,164,0,0" TextWrapping="Wrap" Text="Клавиатура для чата" VerticalAlignment="Top" Width="456" InputScope="Chat"/> <TextBox HorizontalAlignment="Left" Height="72" Margin="0,241,0,0" TextWrapping="Wrap" Text="Клавиатура для телефона" VerticalAlignment="Top" Width="456" InputScope="TelephoneNumber"/> <TextBox HorizontalAlignment="Left" Height="72" Margin="0,318,0,0" TextWrapping="Wrap" Text="Клавиатура для URL" VerticalAlignment="Top" Width="456" InputScope="Url"/> <TextBox HorizontalAlignment="Left" Height="72" Margin="0,395,0,0" TextWrapping="Wrap" Text="Клавиатура для формул" VerticalAlignment="Top" Width="456" InputScope="Formula"/> <TextBox HorizontalAlignment="Left" Height="72" Margin="0,472,0,0" TextWrapping="Wrap" Text="Клавиатура для ввода текста" VerticalAlignment="Top" Width="456" InputScope="Text"/> </Grid>Листинг 45.1. Фрагмент кода страницы Keyboard.xaml
Без настройки свойства InputScope для поля выводится стандартная клавиатура. При установке этого поля клавиатура настраивается для оптимизации ввода тех данных, для работы с которым предназначено это поле. В частности, в примере использованы следующие значения InputScope:
- Number – цифровая клавиатура, предназначена для удобного ввода чисел.
- Chat – клавиатура для приложений-чатов. Основная особенность – при вводе текста доступны подсказки, ускоряющие ввод и эмотиконы (значки, используемые для передачи настроения).
- TelephoneNumber – имитирует клавиатуру телефона, служит для набора номера.
- Url – используется для ввода URL-адресов, доступны кнопки для ввода частей адресов.
- Formula – используется для ввода формул. При длительном касании кнопки "=" выводятся кнопки для ввода дополнительных специальных символов.
- Text – используется для ввода и редактирования текста. В частности, при использовании этой разновидности клавиатуры доступны подсказки, которые ускоряют ввод, и функция автоматического исправления введенного текста.
На рис. 45.2. вы можете видеть клавиатуру для поля с InputScope, установленным в значение Formula.
Дополнительные сведения об использовании экранной клавиатуры вы можете найти в материалах "How to change the on-screen keyboard input scope in Windows Phone" ("Как изменить область ввода экранной клавиатуры в Windows Phone", http://msdn.microsoft.com/en-us/library/windowsphone/develop/gg521152%28v=vs.105%29.aspx и "On-screen keyboard input scope index for Windows Phone" ("Перечень областей ввода экранной клавиатуры в Windows Phone", http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh393998%28v=vs.105%29.aspx.