Compartir a través de


RootNode.GetNodesFromTextRange (Método) (Int32%, Int32%)

Actualización: noviembre 2007

Devuelve una colección de objetos ContextNode descendientes que son relevantes para el intervalo de texto especificado de la cadena reconocida.

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

Sintaxis

'Declaración
Public Function GetNodesFromTextRange ( _
    ByRef start As Integer, _
    ByRef length As Integer _
) As ContextNodeCollection
'Uso
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

Parámetros

  • start
    Tipo: System.Int32%
    Comienzo del intervalo de texto de la cadena reconocida.
  • length
    Tipo: System.Int32%
    Longitud del intervalo de texto de la cadena reconocida.

Valor devuelto

Tipo: Microsoft.Ink.ContextNodeCollection
Colección de objetos ContextNode descendientes que son relevantes para el intervalo de texto especificado en la cadena reconocida.

Comentarios

Los parámetros start y length son referencias, pues sus valores pueden cambiar. Por ejemplo, el valor devuelto de GetRecognizedString es "I am late" y se pasan valores de start = 6 y length = 1, que corresponde a la letra "a". Es probable que la colección ContextNodeCollection tenga únicamente un objeto ContextNode, que será el objeto InkWordNode que se corresponde con la palabra "late". En este caso, el valor de start se modifica a 5 y el valor de length se modifica a 4, que corresponde a la palabra completa "late".

Ejemplos

En el ejemplo siguiente, se toma un objeto TextBox, theResultsTextBox, cuya propiedad Text se ha establecido previamente en el valor devuelto por GetRecognizedString para el RootNode de un InkAnalyzer, theInkAnalyzer. El usuario ha seleccionado texto en TextBox. En el código de ejemplo, se usa esa selección y se marca la propiedad Strokes que corresponde a esa selección.

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

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

RootNode (Clase)

RootNode (Miembros)

GetNodesFromTextRange (Sobrecarga)

Microsoft.Ink (Espacio de nombres)