GestureRecognizer.Recognize(StrokeCollection) Methode

Definition

Sucht Stiftbewegungen in der angegebenen StrokeCollection.

public:
 System::Collections::ObjectModel::ReadOnlyCollection<System::Windows::Ink::GestureRecognitionResult ^> ^ Recognize(System::Windows::Ink::StrokeCollection ^ strokes);
[System.Security.SecurityCritical]
public System.Collections.ObjectModel.ReadOnlyCollection<System.Windows.Ink.GestureRecognitionResult> Recognize (System.Windows.Ink.StrokeCollection strokes);
public System.Collections.ObjectModel.ReadOnlyCollection<System.Windows.Ink.GestureRecognitionResult> Recognize (System.Windows.Ink.StrokeCollection strokes);
[<System.Security.SecurityCritical>]
member this.Recognize : System.Windows.Ink.StrokeCollection -> System.Collections.ObjectModel.ReadOnlyCollection<System.Windows.Ink.GestureRecognitionResult>
member this.Recognize : System.Windows.Ink.StrokeCollection -> System.Collections.ObjectModel.ReadOnlyCollection<System.Windows.Ink.GestureRecognitionResult>
Public Function Recognize (strokes As StrokeCollection) As ReadOnlyCollection(Of GestureRecognitionResult)

Parameter

strokes
StrokeCollection

Die StrokeCollection, die nach Stiftbewegungen durchsucht werden soll.

Gibt zurück

Ein Array vom Typ GestureRecognitionResult, das die Anwendungsstiftbewegungen enthält, die der GestureRecognizer erkannt hat.

Attribute

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Ermittelt wird, ob eine Stroke geste ist ScratchOut .

private bool InterpretScratchoutGesture(Stroke stroke)
{
    // Attempt to instantiate a recognizer for scratchout gestures.
    ApplicationGesture[] gestures = { ApplicationGesture.ScratchOut };
    GestureRecognizer recognizer = new GestureRecognizer(gestures);

    if (!recognizer.IsRecognizerAvailable)
        return false;

    // Determine if the stroke was a scratchout gesture.
    StrokeCollection gestureStrokes = new StrokeCollection();
    gestureStrokes.Add(stroke);

    ReadOnlyCollection<GestureRecognitionResult> results = recognizer.Recognize(gestureStrokes);

    if (results.Count == 0)
        return false;

    // Results are returned sorted in order strongest-to-weakest; 
    // we need only analyze the first (strongest) result.
    if (results[0].ApplicationGesture == ApplicationGesture.ScratchOut &&
          results[0].RecognitionConfidence == RecognitionConfidence.Strong)
    {
        // Use the scratchout stroke to perform hit-testing and 
        // erase existing strokes, as necessary.
        return true;
    }
    else
    {
        // Not a gesture: display the stroke normally.
        return false;
    }
}
Private Function InterpretScratchoutGesture(ByVal stroke As Stroke) As Boolean
    ' Attempt to instantiate a recognizer for scratchout gestures.
    Dim gestures() As ApplicationGesture = {ApplicationGesture.ScratchOut}

    Dim recognizer As New GestureRecognizer(gestures)

    If Not recognizer.IsRecognizerAvailable Then
        Return False
    End If

    ' Determine if the stroke was a scratchout gesture.
    Dim gestureStrokes As StrokeCollection = New StrokeCollection()
    gestureStrokes.Add(stroke)

    Dim results As ReadOnlyCollection(Of GestureRecognitionResult)
    results = recognizer.Recognize(gestureStrokes)

    If results.Count = 0 Then
        Return False
    End If

    ' Results are returned sorted in order strongest-to-weakest; 
    ' we need only analyze the first (strongest) result.
    If (results(0).ApplicationGesture = ApplicationGesture.ScratchOut) Then

        ' Use the scratchout stroke to perform hit-testing and 
        ' erase existing strokes, as necessary.
        Return True
    Else
        ' Not a gesture: display the stroke normally.
        Return False
    End If
End Function

Hinweise

Das von der Recognize -Methode zurückgegebene Array wird nach der GestureRecognitionResult.RecognitionConfidence -Eigenschaft sortiert. Recognize Beispielsweise kann ein GestureRecognitionResult Array mit den folgenden Werten zurückgegeben werden:

Index Applicationgesture RecognitionConfidence
0 Check Strong
1 NoGesture Intermediate
2 Curlicue Poor
3 DoubleCurlicue Poor

Dies bedeutet, dass der GestureRecognizer erkennt, dass es sehr wahrscheinlich ist, dass das Stroke ein Häkchen ist, relativ wahrscheinlich, dass die Stroke in keine Geste, und überhaupt nicht wahrscheinlich, dass die Stroke eine curlicue oder eine doppelte Curlicue ist.

Hinweis

Die Recognize -Methode kann ein Array mit NoGesture höher RecognitionConfidence als bei anderen Anwendungsgesten zurückgeben. Dies bedeutet, dass es wahrscheinlicher ist, dass es Stroke keine Geste ist, im Gegensatz zu einer Geste, die eine niedrigere RecognitionConfidencehat.

Gilt für: