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