Поделиться через


AnalysisAlternate.AlternateNodes - свойство

Обновлен: Ноябрь 2007

Gets the ContextNode objects that are associated with the current AnalysisAlternate.

Пространство имен:  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
The ContextNode objects that are associated with this alternate.

Заметки

Because they correspond to alternates, these ContextNode objects are not descendants of the RootNode of the InkAnalyzer unless they are the top alternate, which is the first element in a AnalysisAlternateCollection.

AlternateNodes always return a collection of leaf nodes. For example, if the AnalysisAlternate() is a LineNode, AlternateNodes returns a collection of InkWordNode objects, not LineNode objects.

Примеры

This example checks to see if a AnalysisAlternate, selectedAlternate, has the same segmentation as the top alternate in an AnalysisAlternateCollection, currentAlternates. Segmentation refers to how the strokes are broken up into ContextNode objects.

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 - пространство имен