Plug-in di riconoscimento
Un plug-in di riconoscimento è un oggetto che monitora lo spostamento della penna del tablet per il movimento, la grafia o altri oggetti.
Movimenti di sistema
L'oggetto RealTimeStylus riconosce i movimenti di sistema. L'oggetto RealTimeStylus aggiunge un oggetto SystemGestureData al StylusQueues coda in risposta ai dati che completano il movimento, ad esempio un oggetto StylusUpData per il SystemGesture. Per altre informazioni, vedere dati plug-in e la classe RealTimeStylus.
Oggetto GestureRecognizer
L'oggettoGestureRecognizerimplementa le interfacce IStylusSyncPlugin e IStylusAsyncPlugin. L'oggetto GestureRecognizer riconosce i movimenti dell'applicazione. Internamente, l'oggetto GestureRecognizer usa il riconoscimento movimento Microsoft per eseguire il riconoscimento dei movimenti.
Quando l'oggettoGestureRecognizerriconosce un movimento, aggiunge dati dello stilo personalizzati al StylusQueues coda in risposta all'oggetto StylusUpData per il tratto. La proprietà CustomStylusData oggetto CustomDataId è impostata sul valore GestureRecognitionDataGuid e la proprietà Data dell'oggetto CustomStylusData contiene un oggetto GestureRecognitionData.
Il diagramma seguente illustra come l'oggettoGestureRecognizeraggiunge dati ai dati della penna del tablet.
In questo diagramma il cerchio letterato "SD" rappresenta un oggetto StylusDownData e i cerchi con lettera "P" rappresentano PacketsData oggetti che sono già stati aggiunti alla coda di output di RealTimeStylus oggetto e che non sono ancora stati inviati all'insieme di plug-in asincrono. Il cerchio "SU" rappresenta un oggetto StylusUpData che l'oggetto RealTimeStylus sta attualmente elaborando. Viene inviato alla raccolta di plug-in sincrona e quindi inserita nella coda di output. I cerchi con lettera "GR" rappresentano dati di stilo personalizzati aggiunti alla coda di input dal GestureRecognizer risposta alla notifica dello stilo associato a "SU". I dati dello stilo personalizzati letterati "GR" vengono quindi passati ai plug-in sincroni e quindi alla coda di output prima dell'elaborazione dei dati della penna del tablet successivo. Il cerchio vuoto rappresenta la posizione nella coda di output in cui vengono aggiunti i dati futuri della penna del tablet.
Per impostazione predefinita, l'oggetto GestureRecognizer riconosce solo i movimenti a tratto singolo; Tuttavia, l'oggetto GestureRecognizer può essere impostato per riconoscere i movimenti di più sequenze. Per i movimenti con più sequenze, l'oggetto CustomStylusData viene aggiunto alla coda StylusQueues in risposta all'oggetto StylusUpData per il tratto finale del movimento. Quando si riconoscono movimenti di più sequenze, è possibile ricevere notifiche per set sovrapposti di tratti. Ad esempio, i primi e i secondi tratti insieme possono essere riconosciuti come un gesto e il secondo tratto stesso può essere riconosciuto come gesto. Per altre informazioni sul riconoscimento dei movimenti con più sequenze, vedere la classe GestureRecognizer e la proprietà MaxStrokeCount.
Se si usa l'oggettoGestureRecognizer per il riconoscimento di movimenti con più sequenze, è possibile ottenere prestazioni ottimali usando un modello RealTimeStylus e associare l'oggetto GestureRecognizer all'oggetto RealTimeStylus secondario. Per altre informazioni sul modello di RealTimeStylus a catena, vedere Il modello RealTimeStylus cascaded.
Considerazioni speciali
Nell'elenco seguente vengono descritti altri punti da prendere in considerazione quando si usa l'oggetto GestureRecognizer.
- Non è consigliabile associare un oggettoGestureRecognizer a più di un oggetto RealTimeStylus. Quando vengono abilitati due oggetti RealTimeStylus a cui è collegato l'oggetto GestureRecognizer, si verifica quanto segue.
- L'oggetto GestureRecognizer genera un'eccezione in risposta alla seconda chiamata al relativo metodo RealTimeStylusEnabled.
- Il secondo oggetto RealTimeStylus abilitato genera un oggetto ErrorData e notifica i plug-in rimanenti nelle raccolte plug-in dell'errore.
- L'oggetto GestureRecognizer interrompe il riconoscimento dei movimenti.
- L'oggetto RealTimeStylus genera un'eccezione quando il metodo AddCustomStylusDataToQueue viene chiamato con il parametro guid impostato sul Microsoft.StylusInput.GestureRecognizer.GestureRecognitionDataGuid identificatore univoco globale (GUID).
- L'oggetto GestureRecognizer viene implementato come wrapper COM (Component Object Model) e non è possibile chiamarne direttamente IStylusSyncPlugin o IStylusAsyncPlugin metodi di interfaccia. Per altre informazioni sull'implementazione COM e sull'oggettoRealTimeStylus, vedere Implementation Notes for the StylusInput APIs.
Riconoscimento dei movimenti personalizzato
È possibile creare un plug-in di riconoscimento personalizzato che riconosce la grafia, i movimenti o altri oggetti tramite:
- Passando le informazioni sul tratto a un oggetto Recognizer esistente e usando il metodo AddCustomStylusDataToQueue per aggiungere i risultati al flusso di dati della penna del tablet.
- Eseguire il riconoscimento all'interno del plug-in e usare il metodo AddCustomStylusDataToQueue per aggiungere i risultati al flusso di dati della penna del tablet.
Argomenti correlati