Сенсорный пользовательский интерфейс
В Листинге 45.3 приведен код файла EventsGestures.xaml.cs. Необходимые пояснения к коду приведены в комментариях
using Microsoft.Phone.Controls; using System.Windows.Shapes; using System.Windows.Media; namespace P15_1 { public partial class EventsGestures : PhoneApplicationPage { //Трансформация для перемещения объекта private TranslateTransform dragTranslation; public EventsGestures() { InitializeComponent(); //Инициализируем трансформацию dragTranslation = new TranslateTransform(); //Назначаем её объекту ellipseToDrag.RenderTransform = this.dragTranslation; } //Обработчик события Hold private void GestureListener_Hold(object sender, GestureEventArgs e) { //Получим объект-отправитель событий Rectangle R = sender as Rectangle; //Сбросим ширину до 100 пикселей R.Width = 100; } private void GestureListener_Flick(object sender, FlickGestureEventArgs e) { //Получим объект-отправитель событий Rectangle R = sender as Rectangle; //Увеличим на 10 пикселей ширину R.Width+=10; } //Обработчик соыбытия ManipulationDelta private void Ellipse_ManipulationDelta(object sender, System.Windows.Input.ManipulationDeltaEventArgs e) { //Переместим объект в соответствии с координатами точки касания dragTranslation.X += e.DeltaManipulation.Translation.X; dragTranslation.Y += e.DeltaManipulation.Translation.Y; } } }Листинг 45.3. Код файла EventGestures.xaml.cs
Выводы
В этой лабораторной работе мы рассмотрели способы настройки экранной клавиатуры с помощью установки свойства InputScope текстового блока. Использование экранной клавиатуры, наилучшим образом подходящей для ввода данных конкретного текстового поля, повышает удобство работы с программой. Так же мы рассмотрели методику обработки жестов. Жесты позволяют расширить возможности по сенсорному взаимодействию пользователя и приложения. Используя жесты нужно следить за тем, чтобы они распознавались однозначно (не следует назначать элементу управления жесты, отдельные части которых могут быть интерпретированы как другие жесты, назначенные тому же элементу управления).
Задание
Проанализируйте пользовательский интерфейс приложения, разработкой которого вы занимаетесь, обращая внимание на то, какие именно данные пользователь вводит в текстовые поля, присутствующие в интерфейсе. Подберите такие значения свойства InputScope полей ввода, которые позволят пользователю наиболее удобно и быстро вводить данные. Подумайте, как использование жесты позволит улучшить опыт взаимодействия пользователя и приложения. Подготовьте отчёт.
Дополнительные материалы
К данной лекции подготовлено видеоприложение и демонстрационный программный проект.