Erkennen von Plug-Ins
Ein Recognizer-Plug-In ist ein Objekt, das die Bewegung des Tablettstifts 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 Antwort 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 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 durchzuführen.
Wenn das GestureRecognizer-Objekt eine Geste erkennt, fügt es der StylusQueues-Warteschlange benutzerdefinierte Stiftdaten als Antwort 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 Tablettstiftdaten 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-Sammlung gesendet wurden. Der Kreis mit dem Buchstaben "SU" stellt ein StylusUpData-Objekt dar, das derzeit vom RealTimeStylus-Objekt verarbeitet wird. Sie wird an die synchrone Plug-In-Sammlung gesendet und dann in der Ausgabewarteschlange platziert. Die Kreise mit dem Buchstaben "GR" stellen benutzerdefinierte Stiftdaten dar, die der Eingabewarteschlange vom GestureRecognizer-Plug-In als Reaktion auf die dem "SU" zugeordnete Stifteingabebenachrichtigung hinzugefügt werden. Die benutzerdefinierten Tablettstiftdaten mit dem Buchstaben "GR" werden dann an die synchronen Plug-Ins und dann an die Ausgabewarteschlange übergeben, bevor die nächsten Tablettstiftdaten verarbeitet werden. Der leere Kreis stellt die Position in der Ausgabewarteschlange dar, an der zukünftige Tablettstiftdaten hinzugefügt werden.
Standardmäßig erkennt das GestureRecognizer-Objekt nur Gesten mit nur einem Strich. Das GestureRecognizer-Objekt kann jedoch so festgelegt werden, dass Es multistroke-Gesten erkennt. Bei Gesten mit mehreren Tastatureingaben wird das CustomStylusData-Objekt der Warteschlange StylusQueues als Reaktion auf das StylusUpData-Objekt für den letzten Strich der Geste hinzugefügt. Wenn Sie Gesten mit mehreren Strichen erkennen, erhalten Sie möglicherweise Benachrichtigungen zu überlappenden Strichsätzen. Beispielsweise können der erste und zweite Strich zusammen als eine Geste erkannt werden, und der zweite Strich allein 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 Multistroke-Gestenerkennung verwenden, erzielen Sie möglicherweise eine optimale Leistung, 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 RealTimeStylus-Objekt, das aktiviert wurde, generiert ein ErrorData-Objekt und benachrichtigt die verbleibenden Plug-Ins in den Plug-In-Auflistungen über den Fehler.
- Das GestureRecognizer-Objekt beendet die Erkennung von Gesten.
- Das RealTimeStylus-Objekt löst eine Ausnahme aus, wenn seine AddCustomStylusDataToQueue-Methode mit dem guid-Parameter aufgerufen wird, der auf den global eindeutigen Bezeichner (Globally Unique Identifier, GUID) Microsoft.StylusInput.GestureRecognizer.GestureRecognitionDataGuid festgelegt ist.
- Das GestureRecognizer-Objekt wird als Component Object Model-Wrapper (COM) implementiert, und Sie können die 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 Recognizer-Plug-In erstellen, das Handschrift, Gesten oder andere Objekte erkennt, indem Sie:
- Übergeben der Strichinformationen an ein vorhandenes Recognizer-Objekt und Verwenden der AddCustomStylusDataToQueue-Methode zum Hinzufügen der Ergebnisse zum Tablettstiftdatenstrom.
- Durchführen der Erkennung in Ihrem Plug-In und Verwenden der AddCustomStylusDataToQueue-Methode, um die Ergebnisse dem Tablettstiftdatenstrom hinzuzufügen.