Partager via


LineNode.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 :  System.Windows.Ink
Assembly :  IAWinFX (dans IAWinFX.dll)

Syntaxe

'Déclaration
Public Function GetNodesFromTextRange ( _
    ByRef start As Integer, _
    ByRef length As Integer _
) As ContextNodeCollection
'Utilisation
Dim instance As LineNode
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 : System.Windows.Ink.ContextNodeCollection
Collection d'objets ContextNode descendants pertinents pour la plage de texte spécifiée dans la chaîne reconnue.

Notes

La plage de texte spécifiée doit correspondre à la chaîne reconnue du LineNode actif et non à la chaîne reconnue de la propriété RootNode complète.

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 start = 9 et length = 1, ce qui correspond à la lettre « i », il est probable que le ContextNodeCollection possède un seul ContextNode, qui est 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, selectedResultsTextBox, dont la propriété Text avait auparavant la valeur retournée par la méthode GetRecognizedString pour un LineNode, line. L'utilisateur a sélectionné du texte dans le [System.Windows.Controls.TextBox]. L'exemple de code utilise cette sélection et marque le Strokes correspondant.

' Find out what's been selected in the text box
Dim start As Integer = selectedResultsTextBox.SelectionStart
Dim length As Integer = selectedResultsTextBox.SelectionLength

' Return if no text is selected.
If length = 0 Then
    Return
End If 

' Get the nodes that correspond to that range
Dim selectedNodes As ContextNodeCollection = _
    line.GetNodesFromTextRange(start, length)

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

' Color the strokes red if part of the selected words.
' Otherwise, color them black.
For Each node As ContextNode In line.SubNodes
    For Each stroke As Stroke In node.Strokes
        If selectedNodes.Contains(node) Then
            stroke.DrawingAttributes.Color = Colors.Red
        Else
            stroke.DrawingAttributes.Color = Colors.Black
        End If
    Next stroke
Next node
// Find out what's been selected in the text box
int start = selectedResultsTextBox.SelectionStart;
int length = selectedResultsTextBox.SelectionLength;

// Return if no text is selected.
if (length == 0)
    return;

// Get the nodes that correspond to that range
ContextNodeCollection selectedNodes =
    line.GetNodesFromTextRange(ref start, ref length);

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

// Color the strokes red if part of the selected words.
// Otherwise, color them black.
foreach (ContextNode node in line.SubNodes)
{
    foreach (Stroke stroke in node.Strokes)
    {
        if (selectedNodes.Contains(node))
        {
            stroke.DrawingAttributes.Color = Colors.Red;
        }
        else
        {
            stroke.DrawingAttributes.Color = Colors.Black;
        }
    }
}

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

LineNode, classe

Membres LineNode

GetNodesFromTextRange, surcharge

System.Windows.Ink, espace de noms