다음을 통해 공유


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의 첫 번째 요소인 최상위 대체 항목이 아닌 경우 InkAnalyzerRootNode 하위 항목이 아닙니다.

반환되는 노드는 대체 항목에 해당하는 리프 노드입니다.

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에서 지원

참고 항목

참조

AnalysisAlternate 클래스

AnalysisAlternate 멤버

Microsoft.Ink 네임스페이스