Freigeben über


RootNode.GetNodesFromTextRange-Methode (Int32%, Int32%)

Gibt eine Auflistung von ContextNode-Nachfolgerobjekten zurück, die für den angegebenen Textbereich in der erkannten Zeichenfolge relevant sind.

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

Syntax

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

Parameter

  • start
    Typ: System.Int32%
    Der Anfang des Textbereichs in der erkannten Zeichenfolge.
  • length
    Typ: System.Int32%
    Die Länge des Textbereichs in der erkannten Zeichenfolge.

Rückgabewert

Typ: Microsoft.Ink.ContextNodeCollection
Die Auflistung von ContextNode-Nachfolgerobjekten, die für den angegebenen Textbereich in der erkannten Zeichenfolge relevant sind.

Hinweise

Der start-Parameter und der length-Parameter sind Verweise, da ihre Werte geändert werden können. Wenn der Rückgabewert von GetRecognizedString beispielsweise "I am late" lautet, und Sie die Werte start = 6 und length = 1 übergeben, entsprechen diese Parameterwerte dem Buchstaben "a". ContextNodeCollection verfügt dann wahrscheinlich nur über einen ContextNode, der den InkWordNode darstellt, der dem Wort "late" entspricht. In diesem Fall werden der Wert von start in 5 und der Wert von length in 4 geändert, was dem gesamten Word "late" entspricht.

Beispiele

Im folgenden Beispiel wird ein TextBox-Objekt (theResultsTextBox) verwendet, dessen Text-Eigenschaft zuvor auf den Wert festgelegt wurde, der von GetRecognizedString für den RootNode eines InkAnalyzer (theInkAnalyzer) zurückgegeben worden war. Der Benutzer hat einen Teil des Texts im TextBox-Objekt ausgewählt, und der Beispielcode verwendet die Auswahl und markiert die Strokes, die der Auswahl entsprechen.

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

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

GetNodesFromTextRange-Überladung

Microsoft.Ink-Namespace