Condividi tramite


Metodo RootNode.GetNodesFromTextRange (Int32%, Int32%)

Aggiornamento: novembre 2007

Restituisce un insieme di oggetti ContextNode discendenti rilevanti per l'intervallo di testo specificato nella stringa riconosciuta.

Spazio dei nomi:  Microsoft.Ink
Assembly:  Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.dll)

Sintassi

'Dichiarazione
Public Function GetNodesFromTextRange ( _
    ByRef start As Integer, _
    ByRef length As Integer _
) As ContextNodeCollection
'Utilizzo
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

Parametri

  • start
    Tipo: System.Int32%
    Inizio dell'intervallo di testo nella stringa riconosciuta.
  • length
    Tipo: System.Int32%
    Lunghezza dell'intervallo di testo nella stringa riconosciuta.

Valore restituito

Tipo: Microsoft.Ink.ContextNodeCollection
Insieme di oggetti ContextNode discendenti rilevanti per l'intervallo di testo specificato nella stringa riconosciuta.

Note

I parametri start e length sono riferimenti perché è possibile modificare i relativi valori. Ad esempio, il valore restituito di GetRecognizedString è "I am late" e vengono passati i valori di start = 6 e length = 1, corrispondenti alla lettera "a". È quindi probabile che ContextNodeCollection disponga di un solo oggetto ContextNode, ovvero l'oggetto InkWordNode che corrisponde alla parola "late". In questo caso, il valore di start viene modificato in 5 e il valore di length viene modificato in 4, per creare una corrispondenza con l'intera parola "late".

Esempi

Nell'esempio seguente viene utilizzato un oggetto TextBox, theResultsTextBox, la cui proprietà Text è stata in precedenza impostata sul valore restituito da GetRecognizedString per RootNode di un oggetto InkAnalyzer, theInkAnalyzer. L'utente ha selezionato del testo nell'oggetto Textbox e nel codice di esempio viene accettata la selezione e viene contrassegnato l'oggetto Strokes che corrisponde a tale selezione.

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

Piattaforme

Windows Vista

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Informazioni sulla versione

.NET Framework

Supportato in: 3.0

Vedere anche

Riferimenti

RootNode Classe

Membri RootNode

Overload GetNodesFromTextRange

Spazio dei nomi Microsoft.Ink