Freigeben über


InkCollector.Gesture-Ereignis

Tritt ein, wenn eine Anwendungsstiftbewegung erkannt wird.

Namespace:  Microsoft.Ink
Assembly:  Microsoft.Ink (in Microsoft.Ink.dll)

Syntax

'Declaration
Public Event Gesture As InkCollectorGestureEventHandler
'Usage
Dim instance As InkCollector
Dim handler As InkCollectorGestureEventHandler

AddHandler instance.Gesture, handler
public event InkCollectorGestureEventHandler Gesture
public:
 event InkCollectorGestureEventHandler^ Gesture {
    void add (InkCollectorGestureEventHandler^ value);
    void remove (InkCollectorGestureEventHandler^ value);
}
/** @event */
public void add_Gesture (InkCollectorGestureEventHandler value)
/** @event */
public void remove_Gesture (InkCollectorGestureEventHandler value)
JScript unterstützt keine Ereignisse.

Hinweise

Damit dieses Ereignis eintritt, muss das InkCollector-Objekt Interesse an einem Satz von Anwendungsstiftbewegungen haben. Rufen Sie die SetGestureStatus-Methode auf, um das Interesse des InkCollector-Objekts für einen Satz von Stiftbewegungen festzulegen.

Eine Liste der spezifischen Anwendungsstiftbewegungen finden Sie unter dem ApplicationGesture-Enumerationstyp. Weitere Informationen zu Anwendungsstiftbewegungen finden Sie unter Pen Input, Ink, and Recognition.

Der Ereignishandler empfängt ein Argument vom Typ InkCollectorGestureEventArgs, das Daten zu diesem Ereignis enthält.

Beim Erstellen eines InkCollectorGestureEventHandler-Delegaten bestimmen Sie die Methode für die Ereignisbehandlung. Um dem Ereignishandler das Ereignis zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird bei jedem Eintreten des Ereignisses aufgerufen, sofern der Delegat nicht entfernt wird.

Wenn die CollectionMode-Eigenschaft auf GestureOnly festgelegt ist, ist das Timeout zwischen dem Zeitpunkt, zu dem ein Benutzer eine Stiftbewegung hinzufügt, und dem Zeitpunkt, zu dem das Gesture-Ereignis eintritt, ein fester Wert, der nicht programmgesteuert geändert werden kann. Die Stiftbewegungserkennung ist im InkAndGesture-Modus schneller.

So verhindern Sie während des InkAndGesture-Modus die Auflistung der Freihandeingaben:

Legen Sie CollectionMode auf InkAndGesture fest.

  • Löschen Sie das Stroke-Objekt aus dem Stroke-Ereignis.

  • Verarbeiten Sie die Stiftbewegung im Gesture-Ereignis.

Um den Fluss der Freihandeingaben bei Stiftbewegungen zu verhindern, legen Sie die DynamicRendering-Eigenschaft auf false fest.

Während der Benutzer Freihandeingaben einfügt, wird zusätzlich das Gesture-Ereignis ausgelöst, wenn sich das InkCollector-Objekt im Auswahl- oder Löschmodus befindet. Sie sind für das Nachverfolgen des Bearbeitungsmodus verantwortlich, und Sie sollten vor dem Interpretieren des Ereignisses den Modus kennen.

Hinweis

Um Stiftbewegungen zu erkennen, müssen Sie ein Objekt oder ein Steuerelement verwenden, das Freihandeingaben erfassen kann.

Hinweis

Das InkCollector-Objekt verwendet den InkCollectorGestureEventHandler-Delegaten, um einen Ereignishandler für Stiftbewegungen hinzuzufügen.

Beispiele

Der Ereignishandler in diesem Beispiel zeigt Informationen zu Anwendungsstiftbewegungen in einer Bezeichnung auf der Statusleiste (statusLabelAppGesture) an.

Private Sub Event_OnApplicationGesture(ByVal sender As Object, ByVal e As InkCollectorGestureEventArgs)

    ' There might be more than one gesture passed in InkCollectorGestureEventArgs
    ' The gestures are arranged in order of confidence from most to least
    ' This event handler is only concerned with the first (most confident) gesture
    Dim G As Gesture = e.Gestures(0)

    ' we will use the gesture if it has confidence of strong or intermediate

    If G.Confidence = RecognitionConfidence.Intermediate Or _
    G.Confidence = RecognitionConfidence.Strong Then

        Select Case G.Id
            Case ApplicationGesture.Left
                statusLabelAppGesture.Text = "Left"
            Case ApplicationGesture.Right
                statusLabelAppGesture.Text = "Right"
            Case ApplicationGesture.Up
                statusLabelAppGesture.Text = "Up"
            Case ApplicationGesture.Down
                statusLabelAppGesture.Text = "Down"
        End Select

    End If
End Sub
void Event_OnApplicationGesture(object sender, InkCollectorGestureEventArgs e)
{
    // There might be more than one gesture passed in InkCollectorGestureEventArgs
    // The gestures are arranged in order of confidence from most to least
    // This event handler is only concerned with the first (most confident) gesture
    Gesture G = e.Gestures[0];

    // we will use the gesture if it has confidence of strong or intermediate

    if (G.Confidence == RecognitionConfidence.Intermediate ||
        G.Confidence == RecognitionConfidence.Strong)
    {

        switch (G.Id)
        {
            case ApplicationGesture.Left:
                statusLabelAppGesture.Text = "Left";
                break;
            case ApplicationGesture.Right:
                statusLabelAppGesture.Text = "Right";
                break;
            case ApplicationGesture.Up:
                statusLabelAppGesture.Text = "Up";
                break;
            case ApplicationGesture.Down:
                statusLabelAppGesture.Text = "Down";
                break;
        }
    }

}

Dieses Ereignis wird nur von Anwendungsstiftbewegungen ausgelöst, die auch angefordert wurden. In diesem Beispiel fordert das InkCollector-Objekt mInkCollector vier Stiftbewegungen der ApplicationGesture-Enumeration an.

' set InkCollector interest in the Left, Right, Up, Down gestures
mInkCollector.SetGestureStatus(ApplicationGesture.Left, True)
mInkCollector.SetGestureStatus(ApplicationGesture.Right, True)
mInkCollector.SetGestureStatus(ApplicationGesture.Up, True)
mInkCollector.SetGestureStatus(ApplicationGesture.Down, True)
// set InkCollector interest in the Left, Right, Up, Down gestures
mInkCollector.SetGestureStatus(ApplicationGesture.Left, true);
mInkCollector.SetGestureStatus(ApplicationGesture.Right, true);
mInkCollector.SetGestureStatus(ApplicationGesture.Up, true);
mInkCollector.SetGestureStatus(ApplicationGesture.Down, true);

Vor dem Auflisten von Freihandeingaben und Stiftbewegungen registriert das InkCollector-Objekt mInkCollector den Ereignishandler.

' register the Gesture event handler
AddHandler mInkCollector.Gesture, New InkCollectorGestureEventHandler(AddressOf Event_OnApplicationGesture)
// register the Gesture event handler
mInkCollector.Gesture += new InkCollectorGestureEventHandler(Event_OnApplicationGesture);

Plattformen

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Versionsinformationen

.NET Framework

Unterstützt in: 3.0

Siehe auch

Referenz

InkCollector-Klasse

InkCollector-Member

Microsoft.Ink-Namespace

InkCollectorGestureEventArgs

ApplicationGesture

InkCollector.SetGestureStatus