Partager via


RecognitionResult.GetAlternatesFromSelection, méthode (Int32, Int32)

Mise à jour : November 2007

Retourne la collection RecognitionAlternates à partir d'une plage dans la meilleure chaîne résultante de l'objet RecognitionResult, afin que chaque objet RecognitionAlternate de la collection ne corresponde qu'à un seul segment d'entrée manuscrite. La collection retournée est limitée à 10 éléments.

Espace de noms :  Microsoft.Ink
Assembly :  Microsoft.Ink (dans Microsoft.Ink.dll)

Syntaxe

'Déclaration
Public Function GetAlternatesFromSelection ( _
    selectionStart As Integer, _
    selectionLength As Integer _
) As RecognitionAlternates
'Utilisation
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

Paramètres

  • selectionStart
    Type : System.Int32
    Démarrage de la sélection de texte à partir de laquelle la collection RecognitionAlternates est retournée. La valeur par défaut est 0 (zéro).
  • selectionLength
    Type : System.Int32
    Longueur de la sélection de texte à partir de laquelle la collection RecognitionAlternates est retournée. La valeur par défaut est -1. Elle spécifie le début du texte, du démarrage de la sélection à la fin de la chaîne.

Valeur de retour

Type : Microsoft.Ink.RecognitionAlternates
Retourne la collection RecognitionAlternates à partir d'une sélection dans la meilleure chaîne résultante de l'objet RecognitionResult, afin que chaque objet RecognitionAlternate de la collection ne corresponde qu'à un seul segment d'entrée manuscrite.

Notes

Un module de reconnaissance peut diviser « comment ça va » en trois segments, un pour chaque mot, en fonction de l'espacement entre les segments. Appelez la méthode GetAlternatesFromSelection pour retourner les propositions de substitution d'un seul segment de cette sélection.

Notez la différence entre la méthode GetAlternatesFromSelection, la méthode AlternatesWithConstantPropertyValues, LineAlternateset les méthodes ConfidenceAlternates de l'objet RecognitionAlternate. Bien que la méthode GetAlternatesFromSelection retourne une collection RecognitionAlternates dans laquelle chaque objet RecognitionAlternate correspond à un seul segment d'entrée manuscrite dans une sélection, les méthodes AlternatesWithConstantPropertyValues, LineAlternateset ConfidenceAlternates retournent la collection RecognitionAlternates dans laquelle les objets RecognitionAlternate correspondent à chaque segment d'entrée manuscrite dans une sélection.

Exemples

Dans cet exemple, la reconnaissance synchrone est gérée en réponse à une action utilisateur telle qu'un clic sur un élément de menu ou un bouton. Tout d'abord, la collection Strokes d'un objet RecognizerContext est assignée à partir de la collection Strokes associée à un objet InkOverlay, puis son compte de traits est contrôlé. Si la collection Strokes contient au moins un objet Stroke, le processus de reconnaissance commence par appeler la méthode Recognize. Si la reconnaissance réussit, une collection RecognitionAlternates est obtenue pour le premier mot du résultat de reconnaissance (si plusieurs mots sont trouvés dans la propriété TopString) ou pour tout le résultat de reconnaissance. Pour afficher les RecognitionAlternates, il faut les ajouter à une zone de liste.

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

Plateformes

Windows Vista

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Informations de version

.NET Framework

Pris en charge dans : 3.0

Voir aussi

Référence

RecognitionResult, classe

Membres RecognitionResult

GetAlternatesFromSelection, surcharge

Microsoft.Ink, espace de noms

GetAlternatesFromSelection

RecognitionAlternates