InkAnalyzer.GetNodesFromTextRange 메서드 (Int32%, Int32%, ContextNodeCollection)
업데이트: 2007년 11월
지정된 컨텍스트 노드의 지정된 텍스트 범위와 관련된 ContextNode 개체의 컬렉션을 반환합니다.
네임스페이스: Microsoft.Ink
어셈블리: Microsoft.Ink.Analysis(Microsoft.Ink.Analysis.dll)
구문
‘선언
Public Function GetNodesFromTextRange ( _
ByRef start As Integer, _
ByRef length As Integer, _
nodesToSearch As ContextNodeCollection _
) As ContextNodeCollection
‘사용 방법
Dim instance As InkAnalyzer
Dim start As Integer
Dim length As Integer
Dim nodesToSearch As ContextNodeCollection
Dim returnValue As ContextNodeCollection
returnValue = instance.GetNodesFromTextRange(start, _
length, nodesToSearch)
public ContextNodeCollection GetNodesFromTextRange(
ref int start,
ref int length,
ContextNodeCollection nodesToSearch
)
public:
ContextNodeCollection^ GetNodesFromTextRange(
int% start,
int% length,
ContextNodeCollection^ nodesToSearch
)
public ContextNodeCollection GetNodesFromTextRange(
/** @ref */int start,
/** @ref */int length,
ContextNodeCollection nodesToSearch
)
public function GetNodesFromTextRange(
start : int,
length : int,
nodesToSearch : ContextNodeCollection
) : ContextNodeCollection
매개 변수
- start
형식: System.Int32%
인식된 문자열의 nodesToSearch 부분에서 텍스트 범위의 시작 부분에 대한 참조입니다.
- length
형식: System.Int32%
인식된 문자열의 nodesToSearch 부분에서 텍스트 범위의 길이에 대한 참조입니다.
- nodesToSearch
형식: Microsoft.Ink.ContextNodeCollection
검색을 제한할 ContextNode 개체입니다.
반환 값
형식: Microsoft.Ink.ContextNodeCollection
지정된 컨텍스트 노드의 지정된 텍스트 범위와 관련된 ContextNode 개체입니다.
설명
지정된 텍스트 범위의 기준은 전체 InkAnalyzer의 인식된 문자열이 아닌 InkAnalyzer의 인식된 문자열 중 nodesToSearch 부분이어야 합니다.
이 메서드는 텍스트 범위를 가장 가까운 단어 경계로 확장하여 start 및 length 매개 변수의 값을 수정합니다.
예를 들어 인식된 문자열이 "I am late"인 경우 start 매개 변수 값을 6으로, length 매개 변수 값을 "late"의 문자 "a"에 해당하는 1로 설정하여 이 메서드를 호출하면 "late"라는 단어에 해당하는 단일 ContextNode, InkWordNode 또는 TextWordNode가 들어 있는 컬렉션이 반환됩니다. 예를 들어 이 메서드는 start의 값을 5로 수정하고 length의 값을 "late"라는 단어에 해당하는 4로 수정하기도 합니다.
참고
start 매개 변수는 nodesToSearch 매개 변수의 인식된 문자열에 상대적입니다.
예제
이 예제에서는 해당 Text 속성이 ContextNodeCollection인 nodesToSearch에 있는 노드의 인식되어 결합된 문자열로 설정된 System.Windows.Forms.TextBox인 theResultsTextBox를 사용합니다. nodesToSearch 컬렉션에는 InkAnalyzer인 theInkAnalyzer의 컨텍스트 노드가 들어 있습니다. 예제 코드에서는 텍스트 상자 선택 영역을 가져와서 해당 선택 영역에 해당하는 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, nodesToSearch)
' 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, nodesToSearch);
// 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에서 지원