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
- selectionStart
Typ: System.Int32
Der Anfang der Textauswahl, von der die RecognitionAlternates-Auflistung zurückgegeben wird. Der Standardwert ist 0 (null).
- 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