다음을 통해 공유


AnalysisAlternate.AlternateNodes 속성

업데이트: 2007년 11월

현재 AnalysisAlternate와 관련된 ContextNode 개체를 가져옵니다.

네임스페이스:  System.Windows.Ink
어셈블리:  IAWinFX(IAWinFX.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

속성 값

형식: System.Windows.Ink.ContextNodeCollection
이 대체 항목과 연결된 ContextNode 개체입니다.

설명

ContextNode 개체는 대체 항목에 해당하기 때문에 AnalysisAlternateCollection의 첫 번째 요소인 최상위 대체 항목이 아닌 경우 InkAnalyzerRootNode 하위 항목이 아닙니다.

AlternateNodes는 항상 리프 노드의 컬렉션을 반환합니다. 예를 들어 AnalysisAlternate()가 LineNode이면 AlternateNodes는 LineNode 개체가 아니라 InkWordNode 개체의 컬렉션을 반환합니다.

예제

이 예제에서는 이름이 selectedAlternate인 AnalysisAlternate에 이름이 currentAlternates인 AnalysisAlternateCollection의 최상위 대체 항목과 동일한 세그먼트가 있는지 확인합니다. 세그먼트는 스트로크가 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 = 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 i As Integer
            For i = 0 To topAlternate.AlternateNodes.Count - 1
                If topAlternate.AlternateNodes(i).Strokes.Count <> _
                   selectedAlternate.AlternateNodes(i).Strokes.Count Then

                    hasSameSegmentationAsTop = False
                    Exit For
                End If

                Dim stroke As Stroke
                For Each stroke In topAlternate.AlternateNodes(i).Strokes
                    If Not selectedAlternate.AlternateNodes(i).Strokes.Contains(stroke) Then
                        hasSameSegmentationAsTop = False
                        Exit For
                    End If
                Next stroke
            Next i
        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 멤버

System.Windows.Ink 네임스페이스