Partager via


WritingRegionNode.GetTextRangeFromNodes, méthode

Mise à jour : November 2007

Pour une collection donnée d'objets ContextNode, cette méthode recherche la plage de texte correspondante dans la chaîne reconnue.

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

Syntaxe

'Déclaration
Public Sub GetTextRangeFromNodes ( _
    subTree As ContextNodeCollection, _
    <OutAttribute> ByRef start As Integer, _
    <OutAttribute> ByRef length As Integer _
)
'Utilisation
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
)

Paramètres

  • length
    Type : System.Int32%
    Longueur de la plage de texte.

Notes

Si le subTree contient un ContextNode qui n'est pas descendant du WritingRegionNode, une ArgumentException est levée.

Si subTree contient des objets ContextNode qui ne sont pas consécutifs, la plus petite plage de texte qui couvre tous les objets ContextNode est retournée.

Exemples

L'exemple suivant recherche le dernier paragraphe dans un WritingRegionNode, writingRegion. Il recherche ensuite la plage de texte qui correspond à ce paragraphe, met la valeur de la méthode GetRecognizedString dans un TextBox (page pouvant être en anglais), selectedResultsTextBox, puis sélectionne le texte qui correspond au dernier paragraphe.

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

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

WritingRegionNode, classe

Membres WritingRegionNode

Microsoft.Ink, espace de noms