Share via


AnalysisAlternateBase.AlternateNodes Property

Gets the ContextNodeBase objects that are associated with this alternate.

Namespace:  System.Windows.Ink.AnalysisCore
Assembly:  IACore (in IACore.dll)

Syntax

'Declaration
Public ReadOnly Property AlternateNodes As ContextNodeBaseCollection
'Usage
Dim instance As AnalysisAlternateBase 
Dim value As ContextNodeBaseCollection 

value = instance.AlternateNodes
public ContextNodeBaseCollection AlternateNodes { get; }
public:
property ContextNodeBaseCollection^ AlternateNodes {
    ContextNodeBaseCollection^ get ();
}
public function get AlternateNodes () : ContextNodeBaseCollection

Property Value

Type: System.Windows.Ink.AnalysisCore.ContextNodeBaseCollection
The ContextNodeBase objects that are associated with this alternate.

Remarks

Because they correspond to alternates, these ContextNodeBase objects are not descendants of the RootNode of the InkAnalyzerBase unless they are the top alternate, which is the first element in an AnalysisAlternateBaseCollection.

Examples

This example determines whether an AnalysisAlternateBase, selectedAlternate, has the same segmentation as the top alternate in an AnalysisAlternateBaseCollection, currentAlternates. Segmentation refers to how the strokes are separated into ContextNodeBase objects.

Dim hasSameSegmentationAsTop As Boolean = True 
If currentAlternates.Count > 0 Then 
    Dim topAlternate As AnalysisAlternateBase = 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 
            For index As Integer = 0 To topAlternate.AlternateNodes.Count - 1

                Dim selectedAlternateNodesStrokes As Strokes = _
                    theInk.CreateStrokes(selectedAlternate.AlternateNodes(index).GetStrokeIds())

                Dim topAlternateNodesStrokes As Strokes = _
                        theInk.CreateStrokes(topAlternate.AlternateNodes(index).GetStrokeIds())

                For Each topStroke As Stroke In topAlternateNodesStrokes
                    If (Not selectedAlternateNodesStrokes.Contains(topStroke)) Then
                        hasSameSegmentationAsTop = False 
                        Exit For 
                    End If 
                Next topStroke

            Next index

        End If 

    End If 

End If
bool hasSameSegmentationAsTop = true;
if (currentAlternates.Count > 0)
{
    AnalysisAlternateBase 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; i++)
            {
                Strokes selectedAlternateNodesStrokes =
                    theInk.CreateStrokes(selectedAlternate.AlternateNodes[i].GetStrokeIds());
                Strokes topAlternateNodesStrokes =
                    theInk.CreateStrokes(topAlternate.AlternateNodes[i].GetStrokeIds());

                foreach (Stroke stroke in topAlternateNodesStrokes)
                {
                    if (!selectedAlternateNodesStrokes.Contains(stroke))
                    {
                        hasSameSegmentationAsTop = false;
                        break;
                    }
                }
            }
        }
    }
}

Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Version Information

.NET Framework

Supported in: 3.0

See Also

Reference

AnalysisAlternateBase Class

AnalysisAlternateBase Members

System.Windows.Ink.AnalysisCore Namespace