Erkennungs-Plug-Ins
Ein Erkennungs-Plug-In ist ein Objekt, das die Bewegung des Tablet-Stifts auf Gesten, Handschrift oder andere Objekte überwacht.
Systemgesten
Das RealTimeStylus-Objekt erkennt Systemgesten. Das RealTimeStylus-Objekt fügt der StylusQueues-Warteschlange ein SystemGestureData-Objekt als Reaktion auf die Daten hinzu, die die Geste beenden, z. B. ein StylusUpData-Objekt für systemGesture. Weitere Informationen finden Sie unter Plug-In-Daten und die RealTimeStylus-Klasse.
Das GestureRecognizer-Objekt
Das GestureRecognizer-Objekt implementiert die Schnittstellen IStylusSyncPlugin und IStylusAsyncPlugin . Das GestureRecognizer-Objekt erkennt Anwendungsgesten. Intern verwendet das GestureRecognizer-Objekt die Microsoft-Gestenerkennung, um die Gestenerkennung auszuführen.
Wenn das GestureRecognizer-Objekt eine Geste erkennt, fügt es der StylusQueues-Warteschlange benutzerdefinierte Eingabestiftdaten als Reaktion auf das StylusUpData-Objekt für den Strich hinzu. Die CustomDataId-Eigenschaft des CustomStylusData-Objekts wird auf den GestureRecognitionDataGuid-Wert festgelegt, und die Data-Eigenschaft des CustomStylusData-Objekts enthält ein GestureRecognitionData-Objekt.
Das folgende Diagramm veranschaulicht, wie das GestureRecognizer-Objekt den Tablet-Stiftdaten Daten hinzufügt.
In diesem Diagramm stellt der Kreis mit dem Buchstaben "SD" ein StylusDownData-Objekt dar, und die Kreise mit dem Buchstaben "P" stellen PacketsData-Objekte dar, die bereits der Ausgabewarteschlange des RealTimeStylus-Objekts hinzugefügt wurden und noch nicht an die asynchrone Plug-In-Auflistung gesendet wurden. Der kreisförmige Schriftzug "SU" stellt ein StylusUpData-Objekt dar, das das RealTimeStylus-Objekt gerade verarbeitet. Sie wird an die synchrone Plug-In-Sammlung gesendet und dann in der Ausgabewarteschlange platziert. Die Kreise mit dem Schriftzug "GR" stellen benutzerdefinierte Eingabestiftdaten dar, die der Eingabewarteschlange vom GestureRecognizer-Plug-In als Reaktion auf die Benachrichtigung des Eingabestifts hinzugefügt werden, die "SU" zugeordnet ist. Die benutzerdefinierten Eingabestiftdaten mit dem Schriftzug "GR" werden dann an die synchronen Plug-Ins und dann an die Ausgabewarteschlange übergeben, bevor die daten des nächsten Tablet-Stifts verarbeitet werden. Der leere Kreis stellt die Position in der Ausgabewarteschlange dar, an der zukünftige Tablet-Stiftdaten hinzugefügt werden.
Standardmäßig erkennt das GestureRecognizer-Objekt nur Einzelstrichgesten. Das GestureRecognizer-Objekt kann jedoch so festgelegt werden, dass es mehrstufige Gesten erkennt. Bei Mehrfachgesten wird das CustomStylusData-Objekt der StylusQueues-Warteschlange als Reaktion auf das StylusUpData-Objekt für den letzten Strich der Geste hinzugefügt. Wenn Sie Multistrokegesten erkennen, erhalten Sie möglicherweise Benachrichtigungen für überlappende Sätze von Strichen. Beispielsweise können der erste und der zweite Strich zusammen als eine Geste erkannt werden, und der zweite Strich selbst kann als Geste erkannt werden. Weitere Informationen zur Multistroke-Gestenerkennung finden Sie unter der GestureRecognizer-Klasse und der MaxStrokeCount-Eigenschaft .
Wenn Sie das GestureRecognizer-Objekt für die Erkennung mehrerer Gesten verwenden, können Sie eine optimale Leistung erzielen, indem Sie ein kaskadiertes RealTimeStylus-Modell verwenden und das GestureRecognizer-Objekt an das sekundäre RealTimeStylus-Objekt anfügen. Weitere Informationen zum kaskadierenden RealTimeStylus-Modell finden Sie unter Das kaskadierte RealTimeStylus-Modell.
Besondere Überlegungen
In der folgenden Liste werden weitere Punkte beschrieben, die bei der Verwendung des GestureRecognizer-Objekts zu berücksichtigen sind.
- Sie sollten ein GestureRecognizer-Objekt nicht an mehr als ein RealTimeStylus-Objekt anfügen. Sobald zwei RealTimeStylus-Objekte aktiviert sind, an die das GestureRecognizer-Objekt angefügt ist, geschieht Folgendes.
- Das GestureRecognizer-Objekt löst als Reaktion auf den zweiten Aufruf seiner RealTimeStylusEnabled-Methode eine Ausnahme aus.
- Das zweite aktivierte RealTimeStylus-Objekt generiert ein ErrorData-Objekt und benachrichtigt die verbleibenden Plug-Ins in den Plug-In-Auflistungen über den Fehler.
- Das GestureRecognizer-Objekt erkennt keine Gesten mehr.
- Das RealTimeStylus-Objekt löst eine Ausnahme aus, wenn seine AddCustomStylusDataToQueue-Methode mit dem guid-Parameter aufgerufen wird, der auf microsoft.StylusInput.GestureRecognizer.GestureRecognitionDataGuid globally unique identifier (GUID) festgelegt ist.
- Das GestureRecognizer-Objekt wird als COM-Wrapper (Component Object Model) implementiert, und Sie können seine IStylusSyncPlugin- oder IStylusAsyncPlugin-Schnittstellenmethoden nicht direkt aufrufen. Weitere Informationen zur COM-Implementierung und zum RealTimeStylus-Objekt finden Sie unter Implementierungshinweise für die StylusInput-APIs.
Benutzerdefinierte Gestenerkennung
Sie können ein benutzerdefiniertes Erkennungs-Plug-In erstellen, das Handschriften, Gesten oder andere Objekte wie folgt erkennt:
- Übergeben der Strichinformationen an ein vorhandenes Recognizer-Objekt und Verwenden der AddCustomStylusDataToQueue-Methode zum Hinzufügen der Ergebnisse zum Datenstrom des Tablet-Stifts.
- Durchführen der Erkennung in Ihrem Plug-In und Verwenden der AddCustomStylusDataToQueue-Methode zum Hinzufügen der Ergebnisse zum Datenstrom des Tablet-Stifts.
Zugehörige Themen