Compartir a través de


RecognitionResult.GetAlternatesFromSelection (Método) (Int32, Int32)

Actualización: noviembre 2007

Devuelve la colección RecognitionAlternates a partir de un intervalo de la cadena más satisfactoria del objeto RecognitionResult, de modo que cada objeto RecognitionAlternate de la colección se corresponde con un único segmento de la entrada manuscrita. La colección devuelta se limita a 10 elementos.

Espacio de nombres:  Microsoft.Ink
Ensamblado:  Microsoft.Ink (en Microsoft.Ink.dll)

Sintaxis

'Declaración
Public Function GetAlternatesFromSelection ( _
    selectionStart As Integer, _
    selectionLength As Integer _
) As RecognitionAlternates
'Uso
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

Parámetros

  • selectionStart
    Tipo: System.Int32
    Comienzo de la selección de texto desde la que se devuelve la colección RecognitionAlternates. El valor predeterminado es 0 (cero).
  • selectionLength
    Tipo: System.Int32
    Longitud de la selección de texto desde la que se devuelve la colección RecognitionAlternates. El valor predeterminado es –1, que especifica el texto que empieza al principio de la selección hasta el final de la cadena.

Valor devuelto

Tipo: Microsoft.Ink.RecognitionAlternates
Devuelve la colección RecognitionAlternates a partir de una selección de la cadena más satisfactoria del objeto RecognitionResult, de modo que cada objeto RecognitionAlternate de la colección se corresponde con un único segmento de la entrada manuscrita.

Comentarios

Es probable que un reconocedor divida "how are you" en tres segmentos (en función del espaciado entre los segmentos), uno por palabra. Llame al método GetAlternatesFromSelection si desea devolver las alternativas para un solo segmento de esta selección.

Tenga en cuenta la diferencia entre el método GetAlternatesFromSelection y los métodos AlternatesWithConstantPropertyValues, LineAlternates y ConfidenceAlternates del objeto RecognitionAlternate. Aunque el método GetAlternatesFromSelection devuelve una colección RecognitionAlternates en la que cada objeto RecognitionAlternate se corresponde con un solo segmento de entrada manuscrita de una selección, los métodos AlternatesWithConstantPropertyValues, LineAlternates y ConfidenceAlternates devuelven la colección RecognitionAlternates, en la que los objetos RecognitionAlternate se corresponden con cada segmento de entrada manuscrita de una selección.

Ejemplos

En este ejemplo, el reconocimiento sincrónico se controla en respuesta a una acción del usuario, como hacer clic en un elemento de menú o en un botón. En primer lugar, la colección Strokes de un objeto RecognizerContext se asigna en la colección Strokes asociada a un objeto InkOverlay y se comprueba el recuento de trazos. Si la colección Strokes contiene al menos un objeto Stroke, el proceso de reconocimiento se inicia con una llamada al método Recognize. Si el reconocimiento es correcto, se obtiene una colección RecognitionAlternates para la primera palabra del resultado del reconocimiento (si se encuentra más de una palabra en la propiedad TopString ) o para el resultado del reconocimiento completo. Por último, los objetos RecognitionAlternates se agregan a un cuadro de lista para mostrarlos.

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

Plataformas

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Información de versión

.NET Framework

Compatible con: 3.0

Vea también

Referencia

RecognitionResult (Clase)

RecognitionResult (Miembros)

GetAlternatesFromSelection (Sobrecarga)

Microsoft.Ink (Espacio de nombres)

GetAlternatesFromSelection

RecognitionAlternates