Freigeben über


RecognitionResult.GetAlternatesFromSelection-Methode (Int32, Int32)

Gibt die RecognitionAlternates-Auflistung aus einem Bereich innerhalb der Zeichenfolge mit dem besten Ergebnis des RecognitionResult-Objekts zurück, sodass jedes RecognitionAlternate-Objekt in der Auflistung nur einem Freihandsegment entspricht. Die zurückgegebene Auflistung ist auf 10 Elemente beschränkt.

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

Syntax

'Declaration
Public Function GetAlternatesFromSelection ( _
    selectionStart As Integer, _
    selectionLength As Integer _
) As RecognitionAlternates
'Usage
Dim instance As RecognitionResult
Dim selectionStart As Integer
Dim selectionLength As Integer
Dim returnValue As RecognitionAlternates

returnValue = instance.GetAlternatesFromSelection(selectionStart, _
    selectionLength)
public RecognitionAlternates GetAlternatesFromSelection(
    int selectionStart,
    int selectionLength
)
public:
RecognitionAlternates^ GetAlternatesFromSelection(
    int selectionStart, 
    int selectionLength
)
public RecognitionAlternates GetAlternatesFromSelection(
    int selectionStart,
    int selectionLength
)
public function GetAlternatesFromSelection(
    selectionStart : int, 
    selectionLength : int
) : RecognitionAlternates

Parameter

  • selectionLength
    Typ: System.Int32
    Die Länge der Textauswahl, von der die RecognitionAlternates-Auflistung zurückgegeben wird. Der Standardwert ist -1. Dies gibt an, dass der Text am Anfang der Auswahl beginnt und sich bis zum Ende der Zeichenfolge erstreckt.

Rückgabewert

Typ: Microsoft.Ink.RecognitionAlternates
Gibt die RecognitionAlternates-Auflistung aus einer Auswahl innerhalb der Zeichenfolge mit dem besten Ergebnis des RecognitionResult-Objekts zurück, sodass jedes RecognitionAlternate-Objekt in der Auflistung nur einem Freihandsegment entspricht.

Hinweise

Ein Erkennungsmodul teilt wahrscheinlich die Aussage "how are you" in drei Segmente auf (je nach dem Abstand zwischen den Segmenten), wobei ein Segment jeweils ein Wort enthält. Rufen Sie die GetAlternatesFromSelection-Methode auf, um die Alternativen für nur ein Segment dieser Auswahl zurückzugeben.

Beachten Sie den Unterschied zwischen der GetAlternatesFromSelection-Methode und den Methoden AlternatesWithConstantPropertyValues, LineAlternates und ConfidenceAlternates des RecognitionAlternate-Objekts. Die GetAlternatesFromSelection-Methode gibt zwar eine RecognitionAlternates-Auflistung zurück, in der jedes RecognitionAlternate-Objekt nur einem Freihandsegment innerhalb einer Auswahl entspricht, die Methoden AlternatesWithConstantPropertyValues, LineAlternates und ConfidenceAlternates geben jedoch die RecognitionAlternates-Auflistung zurück, in der die RecognitionAlternate-Objekte den einzelnen Freihandsegmenten innerhalb einer Auswahl entsprechen.

Beispiele

In diesem Beispiel wird die synchrone Erkennung als Reaktion auf eine Benutzeraktion wie das Klicken auf ein Menüelement oder auf eine Schaltfläche behandelt. Zunächst wird die Strokes-Auflistung eines RecognizerContext-Objekts von der Strokes-Auflistung zugewiesen, die einem InkOverlay-Objekt zugeordnet ist, und auf die Anzahl der Striche überprüft. Wenn die Strokes-Auflistung mindestens ein Stroke-Objekt enthält, beginnt der Erkennungsprozess mit einem Aufruf der Recognize-Methode. Wenn die Erkennung erfolgreich ist, wird eine RecognitionAlternates-Auflistung für das erste Wort des Erkennungsergebnisses (wenn mehr als ein Wort in der TopString-Eigenschaft gefunden wird) oder für das gesamte Erkennungsergebnis erstellt. Schließlich werden die RecognitionAlternates angezeigt, indem sie einem Listenfeld hinzugefügt werden.

' assign strokes collection from the collected strokes
Me.mRecognizerContext.Strokes = Me.mInkOverlay.Ink.Strokes
' check stroke count. Recognize() will throw exception if no strokes
If Me.mRecognizerContext.Strokes.Count > 0 Then
    Dim status As RecognitionStatus
    ' perform the recognition
    Dim rResult As RecognitionResult = Me.mRecognizerContext.Recognize(status)
    ' check status
    If RecognitionStatus.NoError = status Then
        Dim rAlts As RecognitionAlternates
        ' find the index of the first space in the top string
        Dim idxOfSpace As Integer = rResult.TopString.IndexOf(" ")
        If idxOfSpace <> -1 Then
            ' if we have a space (i.e. more than one word)
            ' get the alternates of the first segment (the first word)
            rAlts = rResult.GetAlternatesFromSelection(0, idxOfSpace)
        Else
            ' otherwise, get the alternates for the entire recognition result
            rAlts = rResult.GetAlternatesFromSelection()
            ' Note: if (idxOfSpace <> -1) .. for illustrative purposes
            ' Could have uncondionally used:
            ' rAlts = rResult.GetAlternatesFromSelection(0, idxOfSpace)
            ' because: 
            '   GetAlternatesFromSelection(0, -1)
            ' is the same as:
            '  GetAlternatesFromSelection()
        End If
        ' display the alternates
        For Each RA As RecognitionAlternate In rAlts
            listBoxRecognitionResults.Items.Add(RA.ToString())
        Next
    End If
End If
// assign strokes collection from the collected strokes
this.mRecognizerContext.Strokes = this.mInkOverlay.Ink.Strokes;
// check stroke count. Recognize() will throw exception if no strokes
if (this.mRecognizerContext.Strokes.Count > 0)
{
    RecognitionStatus status;
    // perform the recognition
    RecognitionResult rResult = this.mRecognizerContext.Recognize(out status);
    // check status
    if (RecognitionStatus.NoError == status)
    {
        RecognitionAlternates rAlts;
        // find the index of the first space in the top string
        int idxOfSpace = rResult.TopString.IndexOf(" ");
        if (idxOfSpace != -1)
        {
            // if we have a space (i.e. more than one word)
            // get the alternates of the first segment (the first word)
            rAlts = rResult.GetAlternatesFromSelection(0, idxOfSpace);
        }
        else
        {
            // otherwise, get the alternates for the entire recognition result
            rAlts = rResult.GetAlternatesFromSelection();
            // Note: if (idxOfSpace != -1) .. for illustrative purposes
            // Could have uncondionally used:
            // rAlts = rResult.GetAlternatesFromSelection(0, idxOfSpace);
            // because: 
            //   GetAlternatesFromSelection(0, -1)
            // is the same as:
            //  GetAlternatesFromSelection()
        }
        // display the alternates
        foreach (RecognitionAlternate RA in rAlts)
        {
            listBoxRecognitionResults.Items.Add(RA.ToString());
        }
    }
}

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

RecognitionResult-Klasse

RecognitionResult-Member

GetAlternatesFromSelection-Überladung

Microsoft.Ink-Namespace

GetAlternatesFromSelection

RecognitionAlternates