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