다음을 통해 공유


RootNode.GetNodesFromTextRange 메서드 (Int32%, Int32%)

업데이트: 2007년 11월

인식된 문자열의 지정된 텍스트 범위에 속하는 하위 ContextNode 개체의 컬렉션을 반환합니다.

네임스페이스:  System.Windows.Ink
어셈블리:  IAWinFX(IAWinFX.dll)

구문

‘선언
Public Function GetNodesFromTextRange ( _
    ByRef start As Integer, _
    ByRef length As Integer _
) As ContextNodeCollection
‘사용 방법
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

매개 변수

반환 값

형식: System.Windows.Ink.ContextNodeCollection
인식된 문자열의 지정된 텍스트 범위와 관련된 하위 ContextNode 개체의 컬렉션입니다.

설명

start 및 length 매개 변수는 반환된 ContextNodeCollection에 연결된 전체 문자열을 지정하도록 변경될 수 있는 참조 값입니다. 예를 들어 GetRecognizedString의 반환 값이 "I am late"이고 start = 6 및 length = 1의 값을 전달하는 경우 이 매개 변수는 문자 "a"에 해당합니다. 따라서 ContextNodeCollection에는 단어 "late"에 해당하는 InkWordNode라는 ContextNode 하나만 포함될 가능성이 높습니다. 이 예제에서 start의 값은 5로 변경되고 length의 값은 4로 변경("late"라는 전체 단어에 해당)됩니다.

예제

다음 예제에서는 GetNodesFromTextRange 메서드를 사용하여 선택된 텍스트에 해당하는 스트로크를 표시합니다. 예제 코드에서는 이름이 theResultsTextBox인 TextBoxText 속성이 GetRecognizedString 메서드에서 반환된 값으로 설정되었으며, 사용자가 theResultsTextBox에서 텍스트를 선택한 것으로 가정합니다. 또한 이 예제에서는 이름이 theInkAnalyzer인 InkAnalyzer가 있다고 가정합니다.

Dim theRootNode As RootNode = CType(theInkAnalyzer.RootNode, RootNode)

' First, set all strokes to black
For Each stroke As Stroke In theRootNode.Strokes
    stroke.DrawingAttributes.Color = Colors.Black
Next stroke

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

' Do nothing if no text is selected.
If selLength = 0 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

' Next, set all selected sub nodes to red
Dim node As ContextNode
For Each node In  selectedSubNodes
    Dim stroke As Stroke
    For Each stroke In  node.Strokes
        stroke.DrawingAttributes.Color = Colors.Red
    Next stroke
Next node
RootNode theRootNode = (RootNode)theInkAnalyzer.RootNode;

// First, set all strokes to black
foreach (Stroke stroke in theRootNode.Strokes)
    stroke.DrawingAttributes.Color = Colors.Black;

// Find out what's been selected in the text box
int selStart = theResultsTextBox.SelectionStart;
int selLength = theResultsTextBox.SelectionLength;

// Do nothing if no text is selected.
if (selLength == 0)
{
    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;

// Next, set all selected sub nodes to red
foreach (ContextNode node in selectedSubNodes)
{
    foreach (Stroke stroke in node.Strokes)
    {
        stroke.DrawingAttributes.Color = Colors.Red;
    }
}

플랫폼

Windows Vista

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

3.0에서 지원

참고 항목

참조

RootNode 클래스

RootNode 멤버

GetNodesFromTextRange 오버로드

System.Windows.Ink 네임스페이스