Share via


InkEditGestureEventArgs.Gestures Property

Gets an array of Gesture objects, in order of confidence, from the recognizer.

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 ();
}
public function get Gestures () : Gesture[]

Property Value

Type: array<Microsoft.Ink.Gesture[]
An array of Gesture objects, in order of confidence, from the recognizer.

Remarks

For descriptions of the application gesture, see the ApplicationGesture enumeration.

The Gesture event occurs when the recognizer recognizes an application gesture.

The array contains information about applications gestures, not system gesture. For more information about gestures, see Using Gestures.

The InkEdit control has default interest in and actions for the following gestures.

Gesture

Action

Down-left, Down-left-long

Enter

Right

Space

Left

Backspace

Up-right, Up-right-long

Tab

Examples

This example demonstrates how you can subscribe to the Gesture event and the Stroke event to augment the functionality of an ApplicationGesture.

When the Gesture event fires, it examines the gesture and the current state of the InkEdit control. If necessary, the behavior of the gesture is modified and the event is cancelled.

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;
        }
    }
}

When the Stroke event fires, the event is cancelled if the stroke is the one that was used to generate the gesture whose behavior was modified in the Gesture event. This prevents the stroke from rendering.

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);
}

Platforms

Windows 7, Windows Vista, Windows Server 2008 R2, Windows Server 2008

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Version Information

.NET Framework

Supported in: 3.0

See Also

Reference

InkEditGestureEventArgs Class

InkEditGestureEventArgs Members

Microsoft.Ink Namespace

Gesture

Gesture.Id

InkEdit

InkEdit.Gesture