Freigeben über


InkEditGestureEventArgs.Gestures-Eigenschaft

Ruft ein Array von Gesture-Objekten in der Reihenfolge der Zuverlässigkeit vom Erkennungsmodul ab.

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

Syntax

'Declaration
Public ReadOnly Property Gestures As Gesture()
'Usage
Dim instance As InkEditGestureEventArgs
Dim value As Gesture()

value = instance.Gestures
public Gesture[] Gestures { get; }
public:
property array<Gesture^>^ Gestures {
    array<Gesture^>^ get ();
}
/** @property */
public Gesture[] get_Gestures()
public function get Gestures () : Gesture[]

Eigenschaftenwert

Typ: array<Microsoft.Ink.Gesture[]
Ein Array von Gesture-Objekten in der Reihenfolge der Zuverlässigkeit vom Erkennungsmodul.

Hinweise

Die Beschreibung der Anwendungsstiftbewegungen finden Sie in den Informationen zum ApplicationGesture-Enumerationstyp.

Das Gesture-Ereignis wird ausgelöst, wenn das Erkennungsmodul eine Anwendungsstiftbewegung erkennt.

Das Array enthält Informationen zu Anwendungsstiftbewegungen, jedoch nicht zu Systemstiftbewegungen. Weitere Informationen zu Stiftbewegungen finden Sie unter Using Gestures.

Das InkEdit-Steuerelement hat standardmäßig Interesse an Aktionen für die folgenden Stiftbewegungen.

Stiftbewegung

Aktion

Nach unten links, nach unten links lang

Eingabetaste

Recht

Leerzeichen

Links

Rücktaste

Nach oben rechts, nach oben rechts lang

TAB

Beispiele

In diesem Beispiel wird veranschaulicht, wie Sie das Gesture-Ereignis und das Stroke-Ereignis abonnieren können, um die Funktionalität einer ApplicationGesture zu erweitern.

Wenn das Gesture-Ereignis ausgelöst wird, werden die Stiftbewegung und der aktuelle Zustand des InkEdit-Steuerelements untersucht. Gegebenenfalls wird das Verhalten der Stiftbewegung geändert, und das Ereignis wird abgebrochen.

Private Sub mInkEdit_Gesture(ByVal sender As Object, ByVal e As InkEditGestureEventArgs)
    ' There might be more than one gesture passed in InkEditGestureEventArgs
    ' The gestures are arranged in order of confidence from most to least
    ' This event handler is only concerned with the first (most confident) gesture
    ' and only if the gesture is ApplicationGesture.Left with strong confidence
    Dim G As Gesture = e.Gestures(0)
    If (ApplicationGesture.Left = G.Id And RecognitionConfidence.Strong = G.Confidence) Then
        Dim pInkEdit As InkEdit = DirectCast(sender, InkEdit)
        ' by default, ApplicationGesture.Left maps to Backspace
        ' If the insertion point is at the beginning of the text
        ' and there is no text selected, then Backspace does not do anything.
        ' In this case, we will alter the gesture to map to Delete instead
        If (0 = pInkEdit.SelectionStart And 0 = pInkEdit.SelectionLength And pInkEdit.Text.Length > 0) Then
            ' take out the first character of the string
            pInkEdit.Text = pInkEdit.Text.Remove(0, 1)
            ' save the stroke ID in a class level var for use in the Stroke event
            Me.mStrokeID = e.Strokes(0).Id
            ' cancel the gesture so it won't perform the default action
            e.Cancel = True
        End If
    End If
End Sub
private void mInkEdit_Gesture(object sender, InkEditGestureEventArgs e)
{
    // There might be more than one gesture passed in InkEditGestureEventArgs
    // The gestures are arranged in order of confidence from most to least
    // This event handler is only concerned with the first (most confident) gesture
    // and only if the gesture is ApplicationGesture.Left with strong confidence
    Gesture G = e.Gestures[0];
    if (ApplicationGesture.Left == G.Id &&  RecognitionConfidence.Strong == G.Confidence)
    {
        InkEdit pInkEdit = (InkEdit)sender;

        // by default, ApplicationGesture.Left maps to Backspace
        // If the insertion point is at the beginning of the text
        // and there is no text selected, then Backspace does not do anything.
        // In this case, we will alter the gesture to map to Delete instead
        if (0 == pInkEdit.SelectionStart && 0 == pInkEdit.SelectionLength && pInkEdit.Text.Length > 0)
        {
            // take out the first character of the string
            pInkEdit.Text = pInkEdit.Text.Remove(0, 1);
            // save the stroke ID in a class level var for use in the Stroke event
            this.mStrokeID = e.Strokes[0].Id;
            // cancel the gesture so it won't perform the default action
            e.Cancel = true;
        }
    }
}

Wenn das Stroke-Ereignis für den Strich ausgelöst wird, mit dem die Stiftbewegung generiert wurde, deren Verhalten im Gesture-Ereignis geändert wurde, wird das Ereignis abgebrochen. Dies verhindert das Rendern des Strichs.

Private Sub mInkEdit_Stroke(ByVal sender As Object, ByVal e As InkEditStrokeEventArgs)
    e.Cancel = (e.Stroke.Id = Me.mStrokeID)
End Sub
private void mInkEdit_Stroke(object sender, InkEditStrokeEventArgs e)
{
    e.Cancel = (e.Stroke.Id == this.mStrokeID);
}

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

InkEditGestureEventArgs-Klasse

InkEditGestureEventArgs-Member

Microsoft.Ink-Namespace

Gesture

Gesture.Id

InkEdit

InkEdit.Gesture