다음을 통해 공유


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

업데이트: 2007년 11월

지정된 텍스트 범위와 관련된 ContextNode 개체의 컬렉션을 반환합니다.

네임스페이스:  Microsoft.Ink
어셈블리:  Microsoft.Ink.Analysis(Microsoft.Ink.Analysis.dll)

구문

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

매개 변수

  • start
    형식: System.Int32%
    인식된 문자열의 텍스트 범위 시작 부분에 대한 참조입니다.
  • length
    형식: System.Int32%
    인식된 문자열의 텍스트 범위 길이에 대한 참조입니다.

반환 값

형식: Microsoft.Ink.ContextNodeCollection
지정된 텍스트 범위와 관련된 ContextNode 개체의 컬렉션입니다.

설명

지정된 텍스트 범위의 기준은 전체 InkAnalyzer의 인식된 문자열이어야 합니다.

이 메서드는 텍스트 범위를 가장 가까운 단어 경계로 확장하여 start 및 length 매개 변수의 값을 수정합니다.

예를 들어 인식된 문자열이 "I am late"인 경우 start 매개 변수 값을 6으로, length 매개 변수 값을 "late"의 문자 "a"에 해당하는 1로 설정하여 이 메서드를 호출하면 "late"라는 단어에 해당하는 단일 ContextNode, InkWordNode 또는 TextWordNode가 들어 있는 컬렉션이 반환됩니다. 예를 들어 이 메서드는 start의 값을 5로 수정하고 length의 값을 "late"라는 단어에 해당하는 4로 수정하기도 합니다.

예제

이 예제에서는 해당 Text 속성이 InkAnalyzer인 theInkAnalyzer에 대한 GetRecognizedString에서 반환된 값으로 설정된 System.Windows.Forms.TextBox인 theResultsTextBox를 사용합니다. 예제 코드에서는 텍스트 상자 선택 영역을 가져와서 해당 선택 영역에 해당하는 Strokes를 표시합니다.

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

플랫폼

Windows Vista

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

버전 정보

.NET Framework

3.0에서 지원

참고 항목

참조

InkAnalyzer 클래스

InkAnalyzer 멤버

GetNodesFromTextRange 오버로드

Microsoft.Ink 네임스페이스