Freigeben über


RootNode.GetTextRangeFromNodes-Methode

Sucht den Textbereich in der erkannten Zeichenfolge, der einer Auflistung von ContextNode-Objekten entspricht, die Nachfolger von RootNode sind.

Namespace:  Microsoft.Ink
Assembly:  Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.dll)

Syntax

'Declaration
Public Sub GetTextRangeFromNodes ( _
    subTree As ContextNodeCollection, _
    <OutAttribute> ByRef start As Integer, _
    <OutAttribute> ByRef length As Integer _
)
'Usage
Dim instance As RootNode
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
)

Parameter

Hinweise

Wenn der subTree-Parameter ein ContextNode-Objekt enthält, das kein Nachfolger von RootNode ist, wird eine ArgumentException ausgelöst.

Wenn der subTree-Parameter nicht aufeinander folgende ContextNode-Objekte enthält, wird der kleinste Textbereich zurückgegeben, der sich über alle ContextNode-Objekte erstreckt.

Beispiele

Im folgenden Beispiel wird ein RootNode (theRootNode) von einem InkAnalyzer (theInkAnalyzer) verwendet und der letzte WritingRegionNode durch Auswahl des Schreibbereichs mit den kleinsten Begrenzungen gesucht. Dann wird der Textbereich ermittelt, der diesem Schreibbereich entspricht, der Wert von GetRecognizedString in ein TextBox-Objekt (theResultsTextBox) eingefügt und der Text ausgewählt, der dem genannten Schreibbereich entspricht.

Dim theRootNode As RootNode = CType(theInkAnalyzer.RootNode, RootNode)
Dim regions As ContextNodeCollection = _
    theInkAnalyzer.FindNodesOfType(Microsoft.Ink.ContextNodeType.WritingRegion)
Dim lastRegion As WritingRegionNode = Nothing
Dim maxY As Integer = Integer.MinValue
Dim aRegion As WritingRegionNode
For Each aRegion In regions
    If aRegion.Location.GetBounds().Bottom > maxY Then
        maxY = aRegion.Location.GetBounds().Bottom
        lastRegion = aRegion
    End If
Next aRegion

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

' Find corresponding start and length
Dim start, length As Integer
theRootNode.GetTextRangeFromNodes(lastRegionCollection, start, length)

' Select this in the text box
theResultsTextBox.Text = theRootNode.GetRecognizedString()
theResultsTextBox.Select(start, length)
            RootNode theRootNode = (RootNode)theInkAnalyzer.RootNode;
            ContextNodeCollection regions =
                theInkAnalyzer.FindNodesOfType(Microsoft.Ink.ContextNodeType.WritingRegion);
            WritingRegionNode lastRegion = null;
            int maxY = int.MinValue;
            foreach (WritingRegionNode region in regions)
            {
                if (region.Location.GetBounds().Bottom > maxY)
                {
                    maxY = region.Location.GetBounds().Bottom;
                    lastRegion = region;
                }
            }

            if (lastRegion == null)
                return;

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

            // Find corresponding start and length
            int start, length;
            theRootNode.GetTextRangeFromNodes(lastRegionCollection, out start, out length);

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

Plattformen

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Versionsinformationen

.NET Framework

Unterstützt in: 3.0

Siehe auch

Referenz

RootNode-Klasse

RootNode-Member

Microsoft.Ink-Namespace