Plug-in recognizer
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 alla coda StylusQueues in risposta ai dati che completano il movimento, ad esempio un oggetto StylusUpData per SystemGesture. Per altre informazioni, vedere Plug-in Data (Dati plug-in) e RealTimeStylus Class (Classe RealTimeStylus).
Oggetto GestureRecognizer
L'oggetto GestureRecognizer implementa 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'oggetto GestureRecognizer riconosce un movimento, aggiunge dati dello stilo personalizzati alla coda StylusQueues in risposta all'oggetto StylusUpData per il tratto. La proprietà CustomStylusData dell'oggetto CustomDataId è impostata sul valore GestureRecognitionDataGuid e la proprietà Data dell'oggetto CustomStylusData contiene un oggetto GestureRecognitionData .
Il diagramma seguente illustra come l'oggetto GestureRecognizer aggiunge dati ai dati della penna del tablet.
In questo diagramma il cerchio letterato "SD" rappresenta un oggetto StylusDownData e i cerchi contrassegnati come "P" rappresentano gli oggetti PacketsData che sono già stati aggiunti alla coda di output dell'oggetto RealTimeStylus e che non sono ancora stati inviati all'insieme di plug-in asincroni. Il cerchio "SU" rappresenta un oggetto StylusUpData che l'oggetto RealTimeStylus sta elaborando. Viene inviato alla raccolta di plug-in sincrona e quindi inserita nella coda di output. I cerchi con lettera "GR" rappresentano dati dello stilo personalizzati che vengono aggiunti alla coda di input dal plug-in GestureRecognizer in 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 per 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 multistroke. Per i movimenti multistroke, l'oggetto CustomStylusData viene aggiunto alla coda StylusQueues in risposta all'oggetto StylusUpData per il tratto finale del movimento. Quando si riconoscono i movimenti multistroke, è possibile ricevere notifiche per la sovrapposizione di set di tratti. Ad esempio, i primi e i secondi tratti possono essere riconosciuti come un gesto e il secondo tratto da solo può essere riconosciuto come gesto. Per altre informazioni sul riconoscimento dei movimenti multistroke, vedere la classe GestureRecognizer e la proprietà MaxStrokeCount .
Se si usa l'oggetto GestureRecognizer per il riconoscimento dei movimenti multistroke, è possibile ottenere prestazioni ottimali usando un modello RealTimeStylus a catena e associare l'oggetto GestureRecognizer all'oggetto RealTimeStylus secondario. Per altre informazioni sul modello 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 oggetto GestureRecognizer a più di un oggetto RealTimeStylus . Quando vengono abilitati due oggetti RealTimeStylus a cui è associato l'oggetto GestureRecognizer , si verifica quanto segue.
- L'oggetto GestureRecognizer genera un'eccezione in risposta alla seconda chiamata al 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 viene chiamato il metodo AddCustomStylusDataToQueue con il parametro guid impostato su Microsoft.StylusInput.GestureRecognizer.GestureRecognitionDataGuid identificatore univoco globale (GUID).
- L'oggetto GestureRecognizer viene implementato come wrapper COM (Component Object Model) e non è possibile chiamare direttamente i metodi di interfaccia IStylusSyncPlugin o IStylusAsyncPlugin . Per altre informazioni sull'implementazione COM e sull'oggetto RealTimeStylus , vedere Note sull'implementazione per le API StylusInput.
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.
- Esecuzione del riconoscimento all'interno del plug-in e uso del metodo AddCustomStylusDataToQueue per aggiungere i risultati al flusso di dati della penna del tablet.
Argomenti correlati