AnalysisAlternate.AlternateNodes 속성
업데이트: 2007년 11월
이 대체 항목과 연결된 ContextNode 개체를 가져옵니다.
네임스페이스: Microsoft.Ink
어셈블리: Microsoft.Ink.Analysis(Microsoft.Ink.Analysis.dll)
구문
‘선언
Public ReadOnly Property AlternateNodes As ContextNodeCollection
‘사용 방법
Dim instance As AnalysisAlternate
Dim value As ContextNodeCollection
value = instance.AlternateNodes
public ContextNodeCollection AlternateNodes { get; }
public:
property ContextNodeCollection^ AlternateNodes {
ContextNodeCollection^ get ();
}
/** @property */
public ContextNodeCollection get_AlternateNodes()
public function get AlternateNodes () : ContextNodeCollection
속성 값
형식: Microsoft.Ink.ContextNodeCollection
이 대체 항목과 연결된 ContextNode 개체입니다.
설명
이 ContextNode 개체는 대체 항목에 해당하기 때문에 AnalysisAlternateCollection의 첫 번째 요소인 최상위 대체 항목이 아닌 경우 InkAnalyzer의 RootNode 하위 항목이 아닙니다.
반환되는 노드는 대체 항목에 해당하는 리프 노드입니다.
AlternateNodes는 항상 리프 노드 컬렉션을 반환합니다. 즉, LineNode에서 호출하는 경우 이 컬렉션에는 LineNode가 아닌 InkWordNode가 포함됩니다.
참고
이 버전의 대체 노드는 ParentNode 속성이 nullNull 참조(Visual Basic의 경우 Nothing)로 지정되어 있습니다.
예제
이 예제에서는 AnalysisAlternate인 selectedAlternate에 AnalysisAlternateCollection인 currentAlternates의 최상위 대체 항목과 동일한 세그먼트가 있는지 확인합니다. 세그먼트는 스트로크가 ContextNode 개체로 나뉘는 방법을 나타냅니다.
Dim hasSameSegmentationAsTop As Boolean = True
If currentAlternates.Count > 0 Then
Dim topAlternate As AnalysisAlternate = currentAlternates(0)
' First check if selected alternate is the top alternate
If selectedAlternate.Equals(topAlternate) Then
hasSameSegmentationAsTop = True
Else
' Check to see if they have the same strokes
If topAlternate.AlternateNodes.Count <> selectedAlternate.AlternateNodes.Count Then
hasSameSegmentationAsTop = False
Else
' Check that each node matches the alternates
Dim index As Integer
For index = 0 To topAlternate.AlternateNodes.Count - 1
If topAlternate.AlternateNodes(index).Strokes.Count <> _
selectedAlternate.AlternateNodes(index).Strokes.Count Then
hasSameSegmentationAsTop = False
Exit For
End If
Dim topStroke As Stroke
For Each topStroke In topAlternate.AlternateNodes(index).Strokes
If (Not selectedAlternate.AlternateNodes(index).Strokes.Contains(topStroke)) Then
hasSameSegmentationAsTop = False
Exit For
End If
Next topStroke
If Not hasSameSegmentationAsTop Then
Exit For
End If
Next index
End If
End If
End If
bool hasSameSegmentationAsTop = true;
if (currentAlternates.Count > 0)
{
AnalysisAlternate topAlternate = currentAlternates[0];
// First check if selected alternate is the top alternate
if (selectedAlternate == topAlternate)
{
hasSameSegmentationAsTop = true;
}
else
{
// Check to see if they have the same strokes
if (topAlternate.AlternateNodes.Count != selectedAlternate.AlternateNodes.Count)
{
hasSameSegmentationAsTop = false;
}
else
{
// Check that each node matches the alternates
for (int i = 0;
(i < topAlternate.AlternateNodes.Count) && hasSameSegmentationAsTop; i++)
{
if (topAlternate.AlternateNodes[i].Strokes.Count !=
selectedAlternate.AlternateNodes[i].Strokes.Count)
{
hasSameSegmentationAsTop = false;
break;
}
foreach (Stroke stroke in topAlternate.AlternateNodes[i].Strokes)
{
if (!selectedAlternate.AlternateNodes[i].Strokes.Contains(stroke))
{
hasSameSegmentationAsTop = false;
break;
}
}
}
}
}
}
플랫폼
Windows Vista
.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
3.0에서 지원