Compartir a través de


WritingRegionNode.GetTextRangeFromNodes (Método)

Actualización: noviembre 2007

En una colección de objetos ContextNode, este método busca el intervalo de texto correspondiente en la cadena reconocida.

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

Sintaxis

'Declaración
Public Sub GetTextRangeFromNodes ( _
    subTree As ContextNodeCollection, _
    <OutAttribute> ByRef start As Integer, _
    <OutAttribute> ByRef length As Integer _
)
'Uso
Dim instance As WritingRegionNode
Dim subTree As ContextNodeCollection
Dim start As Integer
Dim length As Integer

instance.GetTextRangeFromNodes(subTree, _
    start, length)
public void GetTextRangeFromNodes(
    ContextNodeCollection subTree,
    out int start,
    out int length
)
public:
void GetTextRangeFromNodes(
    ContextNodeCollection^ subTree, 
    [OutAttribute] int% start, 
    [OutAttribute] int% length
)
public void GetTextRangeFromNodes(
    ContextNodeCollection subTree,
    /** @attribute OutAttribute */ /** @ref */int start,
    /** @attribute OutAttribute */ /** @ref */int length
)
public function GetTextRangeFromNodes(
    subTree : ContextNodeCollection, 
    start : int, 
    length : int
)

Parámetros

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

Comentarios

Si subTree contiene un objeto ContextNode que no es descendiente del objeto WritingRegionNode, se produce una excepción ArgumentException.

Si subTree contiene objetos ContextNode que no son consecutivos, se devuelve el intervalo de texto más pequeño que cubre todos los objetos ContextNode.

Ejemplos

En el ejemplo siguiente se busca el último párrafo en un objeto WritingRegionNode, writingRegion. Después se busca el intervalo de texto que corresponde a este párrafo, se coloca el valor de GetRecognizedString en un control TextBox, selectedResultsTextBox y, a continuación, se selecciona el texto que corresponde al último párrafo.

Dim paragraphs As ContextNodeCollection = theInkAnalyzer.FindNodesOfType(Microsoft.Ink.ContextNodeType.Paragraph)
Dim lastParagraph As ParagraphNode = Nothing
Dim maxY As Integer = Integer.MinValue
Dim paragraph As ParagraphNode
For Each paragraph In paragraphs
    If paragraph.Location.GetBounds().Bottom > maxY Then
        maxY = paragraph.Location.GetBounds().Bottom
        lastParagraph = paragraph
    End If
Next paragraph

If lastParagraph Is Nothing Then
    Return
End If
' Create a collection to hold this line
Dim lastParagraphCollection As New ContextNodeCollection(theInkAnalyzer)
lastParagraphCollection.Add(lastParagraph)

' Find corresponding start and length
Dim start, length As Integer
writingRegion.GetTextRangeFromNodes(lastParagraphCollection, start, length)

' Select this in the text box
selectedResultsTextBox.Text = writingRegion.GetRecognizedString()
selectedResultsTextBox.Select(start, length)
                ContextNodeCollection paragraphs =
                     theInkAnalyzer.FindNodesOfType(Microsoft.Ink.ContextNodeType.Paragraph);
                ParagraphNode lastParagraph = null;
                int maxY = int.MinValue;
                foreach (ParagraphNode paragraph in paragraphs)
                {
                    if (paragraph.Location.GetBounds().Bottom > maxY)
                    {
                        maxY = paragraph.Location.GetBounds().Bottom;
                        lastParagraph = paragraph;
                    }
                }

                if (lastParagraph == null)
                    return;

                // Create a collection to hold this line
                ContextNodeCollection lastParagraphCollection = new ContextNodeCollection(theInkAnalyzer);
                lastParagraphCollection.Add(lastParagraph);

                // Find corresponding start and length
                int start, length;
                writingRegion.GetTextRangeFromNodes(lastParagraphCollection, out start, out length);

                // Select this in the text box
                selectedResultsTextBox.Text = writingRegion.GetRecognizedString();
                selectedResultsTextBox.Select(start, length);

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

WritingRegionNode (Clase)

WritingRegionNode (Miembros)

Microsoft.Ink (Espacio de nombres)