Compartilhar via


Plug-ins do Reconhecedor

Um plug-in reconhecedor é um objeto que monitora o movimento da caneta tablet para gestos, manuscritos ou outros objetos.

Gestos do sistema

O objeto RealTimeStylus reconhece gestos do sistema. O objeto RealTimeStylus adiciona um objeto SystemGestureData à fila StylusQueues em resposta aos dados que terminam o gesto, como um objeto StylusUpData para SystemGesture. Para obter mais informações, consulte Dados de plug-in e a classe RealTimeStylus.

O objeto GestureRecognizer

O objeto GestureRecognizer implementa as interfaces IStylusSyncPlugin e IStylusAsyncPlugin . O objeto GestureRecognizer reconhece gestos de aplicativo. Internamente, o objeto GestureRecognizer usa o reconhecedor de gestos da Microsoft para executar o reconhecimento de gestos.

Quando o objeto GestureRecognizer reconhece um gesto, ele adiciona dados de caneta personalizados à fila StylusQueues em resposta ao objeto StylusUpData para o traço. A propriedade CustomDataId do objeto CustomStylusData é definida como o valor GestureRecognitionDataGuid e a propriedade Data do objeto CustomStylusData contém um objeto GestureRecognitionData.

O diagrama a seguir ilustra como o objeto GestureRecognizer adiciona dados aos dados da caneta tablet.

ilustração do fluxo de dados gesturerecognizer

Neste diagrama, a letra circular "SD" representa um objeto StylusDownData e os círculos com letras "P" representam objetos PacketsData que já foram adicionados à fila de saída do objeto RealTimeStylus e que ainda não foram enviados para a coleção de plug-ins assíncrona. A letra circular "SU" representa um objeto StylusUpData que o objeto RealTimeStylus está processando no momento. Ele é enviado para a coleção de plug-ins síncronos e colocado na fila de saída. Os círculos com letras "GR" representam dados de caneta personalizados adicionados à fila de entrada pelo plug-in GestureRecognizer em resposta à notificação de caneta associada a "SU". Os dados de caneta personalizados com letra "GR" são então passados para os plug-ins síncronos e, em seguida, para a fila de saída antes que os próximos dados da caneta tablet sejam processados. O círculo vazio representa a posição na fila de saída em que os dados futuros da caneta tablet são adicionados.

Por padrão, o objeto GestureRecognizer reconhece apenas gestos de traço único; no entanto, o objeto GestureRecognizer pode ser definido para reconhecer gestos multistroke. Para gestos multistroke, o objeto CustomStylusData é adicionado à fila StylusQueues em resposta ao objeto StylusUpData para o traço final do gesto. Ao reconhecer gestos multistroke, você pode receber notificações para conjuntos sobrepostos de traços. Por exemplo, o primeiro e o segundo traços juntos podem ser reconhecidos como um gesto e o segundo traço por si só pode ser reconhecido como um gesto. Para obter mais informações sobre o reconhecimento de gestos multistroke, consulte a classe GestureRecognizer e a propriedade MaxStrokeCount .

Se você estiver usando o objeto GestureRecognizer para reconhecimento de gestos multistroke, poderá obter o desempenho ideal usando um modelo RealTimeStylus em cascata e anexando o objeto GestureRecognizer ao objeto RealTimeStylus secundário. Para obter mais informações sobre o modelo RealTimeStylus em cascata, consulte O modelo RealTimeStylus em cascata.

Considerações especiais

A lista a seguir descreve outros pontos a serem considerados ao usar o objeto GestureRecognizer .

Reconhecimento de Gestos Personalizados

Você pode criar um plug-in de reconhecedor personalizado que reconheça manuscrito, gestos ou outros objetos:

  • Passando as informações de traço para um objeto Recognizer existente e usando o método AddCustomStylusDataToQueue para adicionar os resultados ao fluxo de dados da caneta tablet.
  • Executando o reconhecimento em seu plug-in e usando o método AddCustomStylusDataToQueue para adicionar os resultados ao fluxo de dados da caneta tablet.

Gestos do aplicativo

Gestos do sistema

Linha do tempo de mensagens do mouse e eventos do sistema