Freigeben über


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

Gibt eine Auflistung von ContextNode-Objekten zurück, die für den angegebenen Textbereich 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 InkAnalyzer
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%
    Ein Verweis auf den Anfang des Textbereichs in der erkannten Zeichenfolge.
  • length
    Typ: System.Int32%
    Ein Verweis auf die Länge des Textbereichs in der erkannten Zeichenfolge.

Rückgabewert

Typ: Microsoft.Ink.ContextNodeCollection
Die Auflistung von ContextNode-Objekten, die für den angegebenen Textbereich relevant sind.

Hinweise

Der Textbereich sollte relativ zur erkannten Zeichenfolge des gesamten InkAnalyzer sein.

Diese Methode ändert die Werte des start-Parameters und des length-Parameters, indem der Textbereich bis zu den nächsten Wortgrenzen erweitert wird.

Wenn die erkannte Zeichenfolge beispielsweise "I am late" lautet und Sie diese Methode mit den Parameterwerten 6 für start und 1 für length aufrufen, was dem Buchstaben "a" in "late" entspricht, gibt diese Methode eine Auflistung zurück, die einen einzigen ContextNode enthält (den InkWordNode oder TextWordNode), der dem Wort "late" entspricht. Für das vorliegende Beispiel ändert diese Methode auch den Wert von start in 5 und den Wert von length in 4. Dies entspricht dem Wort "late".

Beispiele

In diesem Beispiel wird eine System.Windows.Forms.TextBox verwendet theResultsTextBox, deren Text-Eigenschaft zuvor auf den Wert festgelegt wurde, der von GetRecognizedString für den InkAnalyzer, theInkAnalyzer, zurückgegeben worden war. Im Beispielcode wird die Textfeldauswahl verwendet und es werden die Strokes markiert, die dieser Auswahl entsprechen.

' Find out what's been selected in the text box
Dim selStart As Integer = theResultsTextBox.SelectionStart
Dim selLength As Integer = theResultsTextBox.SelectionLength

' Get the nodes that correspond to that range   
Dim selectedSubNodes As Microsoft.Ink.ContextNodeCollection = _
    Me.theInkAnalyzer.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 theStroke As Microsoft.Ink.Stroke
For Each theStroke In Me.theInkAnalyzer.RootNode.Strokes
    theStroke.DrawingAttributes = _
        New Microsoft.Ink.DrawingAttributes(Color.Black)
Next theStroke

' Next, set all selected sub nodes to red
Dim theContextNode As Microsoft.Ink.ContextNode
For Each theContextNode In selectedSubNodes
    For Each theStroke In theContextNode.Strokes
        theStroke.DrawingAttributes = _
            New Microsoft.Ink.DrawingAttributes(Color.Red)
    Next theStroke
Next theContextNode
// Find out what's been selected in the text box
int selStart = theResultsTextBox.SelectionStart;
int selLength = theResultsTextBox.SelectionLength;

// Get the nodes that correspond to that range
Microsoft.Ink.ContextNodeCollection selectedSubNodes =
    this.theInkAnalyzer.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 (Microsoft.Ink.Stroke theStroke
    in this.theInkAnalyzer.RootNode.Strokes)
{
    theStroke.DrawingAttributes =
        new Microsoft.Ink.DrawingAttributes(Color.Black);
}

// Next, set all selected sub nodes to red
foreach (Microsoft.Ink.ContextNode theContextNode in selectedSubNodes)
{
    foreach (Microsoft.Ink.Stroke theStroke in theContextNode.Strokes)
    {
        theStroke.DrawingAttributes =
            new Microsoft.Ink.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

InkAnalyzer-Klasse

InkAnalyzer-Member

GetNodesFromTextRange-Überladung

Microsoft.Ink-Namespace