Partager via


RootNode.GetNodesFromTextRange, méthode (Int32%, Int32%)

Mise à jour : November 2007

Retourne une collection d'objets ContextNode descendants pertinents pour la plage de texte spécifiée dans la chaîne reconnue.

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

Syntaxe

'Déclaration
Public Function GetNodesFromTextRange ( _
    ByRef start As Integer, _
    ByRef length As Integer _
) As ContextNodeCollection
'Utilisation
Dim instance As RootNode
Dim start As Integer
Dim length As Integer
Dim returnValue As ContextNodeCollection

returnValue = instance.GetNodesFromTextRange(start, _
    length)
public ContextNodeCollection GetNodesFromTextRange(
    ref int start,
    ref int length
)
public:
ContextNodeCollection^ GetNodesFromTextRange(
    int% start, 
    int% length
)
public ContextNodeCollection GetNodesFromTextRange(
    /** @ref */int start,
    /** @ref */int length
)
public function GetNodesFromTextRange(
    start : int, 
    length : int
) : ContextNodeCollection

Paramètres

  • start
    Type : System.Int32%
    Début de la plage de texte dans la chaîne reconnue.
  • length
    Type : System.Int32%
    Longueur de la plage de texte dans la chaîne reconnue.

Valeur de retour

Type : Microsoft.Ink.ContextNodeCollection
Collection d'objets ContextNode descendants pertinents pour la plage de texte spécifiée dans la chaîne reconnue.

Notes

Les paramètres start et length sont des références car leurs valeurs peuvent être modifiées. Par exemple, si la valeur de retour de la méthode GetRecognizedString est « Je vais bien » et que vous passez les valeurs de start = 9 et length = 1, ce qui correspond à la lettre « i ». Il est possible que le ContextNodeCollection n'ait qu'un seul ContextNode, c'est-à-dire le InkWordNode qui correspond au mot « bien ». Dans ce cas, la valeur de start passe à 8 et la valeur de length passe à 4, ce qui correspond au mot « bien » en entier.

Exemples

L'exemple suivant prend un TextBox, (page pouvant être en anglais) theResultsTextBox, pour lequel la valeur retournée par la méthode GetRecognizedString pour le RootNode d'un InkAnalyzer, theInkAnalyzer a été précédemment affectée à la propriété Text (page pouvant être en anglais). L'utilisateur a sélectionné du texte dans le TextBox (page pouvant être en anglais) et l'exemple de code prend la sélection et marque la propriété Strokes qui correspond à cette sélection.

Dim theRootNode As RootNode = DirectCast(theInkAnalyzer.RootNode, RootNode)
' Find out what's been selected in the text box
Dim selStart As Integer = theResultsTextBox.SelectionStart
Dim selLength As Integer = theResultsTextBox.SelectionLength

' Return if no text is selected.
' selLength must be > 0 or GetNodesFromTextRange(...) 
' will throw an ArgumentOutOfRangeException
If 0 = selLength Then
    Return
End If

' Get the nodes that correspond to that range
Dim selectedSubNodes As ContextNodeCollection = theRootNode.GetNodesFromTextRange(selStart, selLength)

' Use the new start and length value to update the
' selection in the TextBox
theResultsTextBox.SelectionStart = selStart
theResultsTextBox.SelectionLength = selLength

' First, set all strokes to black
Dim inkStroke As Stroke
For Each inkStroke In theRootNode.Strokes
    inkStroke.DrawingAttributes = New DrawingAttributes(Color.Black)
Next inkStroke
' Next, set all selected sub nodes to red
Dim node As ContextNode
For Each node In selectedSubNodes
    For Each inkStroke In node.Strokes
        inkStroke.DrawingAttributes = New DrawingAttributes(Color.Red)
    Next inkStroke
Next node
            RootNode theRootNode = (RootNode)theInkAnalyzer.RootNode;
            // Find out what's been selected in the text box
            int selStart = theResultsTextBox.SelectionStart;
            int selLength = theResultsTextBox.SelectionLength;


            // Return if no text is selected.
            // selLength must be > 0 or GetNodesFromTextRange(...) 
            // will throw an ArgumentOutOfRangeException
            if (0 == selLength)
            {
                return;
            }

            // Get the nodes that correspond to that range
            ContextNodeCollection selectedSubNodes =
                    theRootNode.GetNodesFromTextRange(ref selStart, ref selLength);


            // Use the new start and length value to update the
            // selection in the TextBox
            theResultsTextBox.SelectionStart = selStart;
            theResultsTextBox.SelectionLength = selLength;

            // First, set all strokes to black
            foreach (Stroke stroke in theRootNode.Strokes)
                stroke.DrawingAttributes =
                            new DrawingAttributes(Color.Black);
            // Next, set all selected sub nodes to red
            foreach (ContextNode node in selectedSubNodes)
            {
                foreach (Stroke stroke in node.Strokes)
                {
                    stroke.DrawingAttributes =
                            new DrawingAttributes(Color.Red);
                }
            }

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

RootNode, classe

Membres RootNode

GetNodesFromTextRange, surcharge

Microsoft.Ink, espace de noms