Подключаемые модули распознавателя
Подключаемый модуль распознавателя — это объект, который отслеживает движение пера планшета для жестов, рукописного ввода или других объектов.
Системные жесты
Объект RealTimeStylus распознает системные жесты. Объект RealTimeStylus добавляет объект SystemGestureData в очередь StylusQueues в ответ на данные, завершающие жест, например объект StylusUpData для SystemGesture. Дополнительные сведения см. в разделе Данные подключаемого модуля и класс RealTimeStylus.
Объект GestureRecognizer
Объект GestureRecognizer реализует интерфейсы IStylusSyncPlugin и IStylusAsyncPlugin . Объект GestureRecognizer распознает жесты приложения. Внутри объекта GestureRecognizer для распознавания жестов используется распознаватель жестов Майкрософт.
Когда объект GestureRecognizer распознает жест, он добавляет пользовательские данные пера в очередь StylusQueues в ответ на объект StylusUpData для росчерка. Свойству CustomDataId объекта CustomStylusData присваивается значение GestureRecognitionDataGuid, а свойство Data объекта CustomStylusData содержит объект GestureRecognitionData.
На следующей схеме показано, как объект GestureRecognizer добавляет данные в данные пера планшета.
На этой схеме круг с буквой "SD" представляет объект StylusDownData , а круги с буквой "P" представляют объекты PacketsData , которые уже были добавлены в очередь вывода объекта RealTimeStylus и еще не отправлены в асинхронную коллекцию подключаемых модулей. Круг с буквой "SU" представляет объект StylusUpData , который в настоящее время обрабатывается объектом RealTimeStylus . Он отправляется в синхронную коллекцию подключаемых модулей, а затем помещается в очередь вывода. Круги с буквой "GR" представляют данные пользовательского пера, которые добавляются во входную очередь подключаемым модулем GestureRecognizer в ответ на уведомление пера вверх, связанное с "SU". Затем данные пользовательского пера с буквой "GR" передаются синхронным подключаемым модулям, а затем в очередь вывода перед обработкой данных следующего пера планшета. Пустой круг представляет позицию в очереди вывода, в которую добавляются будущие данные пера планшета.
По умолчанию объект GestureRecognizer распознает только жесты с одним росчерком; однако объект GestureRecognizer можно настроить для распознавания жестов с несколькими ударами. Для жестов с несколькими ударами объект CustomStylusData добавляется в очередь StylusQueues в ответ на объект StylusUpData для последнего росчерка жеста. При распознавании жестов с несколькими ударами вы можете получать уведомления о перекрывающихся наборах штрихов. Например, первый и второй штрихи вместе можно распознать как один жест, а второй — как жест. Дополнительные сведения о распознавании жестов с несколькими ударами см. в разделе Класс GestureRecognizer и свойство MaxStrokeCount .
Если вы используете объект GestureRecognizer для распознавания жестов с несколькими ударами, вы можете достичь оптимальной производительности с помощью каскадной модели RealTimeStylus и присоединения объекта GestureRecognizer к вторичному объекту RealTimeStylus . Дополнительные сведения о каскадной модели RealTimeStylus см. в разделе Каскадная модель RealTimeStylus.
Особые рекомендации
В следующем списке описаны другие моменты, которые следует учитывать при использовании объекта GestureRecognizer .
- Не следует присоединять объект GestureRecognizer к нескольким объектам RealTimeStylus . После включения двух объектов RealTimeStylus , к которым присоединен объект GestureRecognizer , происходит следующее.
- Объект GestureRecognizer создает исключение в ответ на второй вызов метода RealTimeStylusEnabled.
- Второй включенный объект RealTimeStylus создает объект ErrorData и уведомляет остальные подключаемые модули в коллекциях подключаемых модулей об ошибке.
- Объект GestureRecognizer перестает распознавать жесты.
- Объект RealTimeStylus создает исключение, когда вызывается его метод AddCustomStylusDataToQueue с параметром GUID , который имеет глобальный уникальный идентификатор (GUID) Microsoft.StylusInput.GestureRecognizer.GestureRecognitionDataGuid .
- Объект GestureRecognizer реализуется как оболочка модели COM, и вы не можете напрямую вызывать его методы интерфейса IStylusSyncPlugin или IStylusAsyncPlugin . Дополнительные сведения о реализации COM и объекте RealTimeStylus см. в примечаниях по реализации api StylusInput.
Распознавание пользовательских жестов
Вы можете создать пользовательский подключаемый модуль распознавателя, который распознает рукописный текст, жесты и другие объекты, выполнив следующие действия:
- Передача сведений об росчерке в существующий объект Распознавателя и использование метода AddCustomStylusDataToQueue для добавления результатов в поток данных пера планшета.
- Выполнение распознавания в подключаемом модуле и использование метода AddCustomStylusDataToQueue для добавления результатов в поток данных пера планшета.
Связанные темы