AnalysisAlternate.AlternateNodes-Eigenschaft
Ruft die ContextNode-Objekte ab, die dieser Alternative zugeordnet sind.
Namespace: Microsoft.Ink
Assembly: Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.dll)
Syntax
'Declaration
Public ReadOnly Property AlternateNodes As ContextNodeCollection
'Usage
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
Eigenschaftenwert
Typ: Microsoft.Ink.ContextNodeCollection
Die ContextNode-Objekte, die dieser Alternative zugeordnet sind.
Hinweise
Da sie Alternativen entsprechen, sind diese ContextNode-Objekte keine Nachfolger von RootNode des InkAnalyzer, es sei denn, es handelt sich um die erste Alternative, die das erste Element in einer AnalysisAlternateCollection ist.
Die zurückgegebenen Knoten sind die Endknoten, die der Alternative entsprechen.
AlternateNodes gibt immer eine Auflistung der Endknoten zurück. Beim Aufruf von LineNode enthält die Auflistung daher InkWordNodes und keine LineNodes.
Hinweis
Die alternativen Knoten in dieser Version verfügen über eine ParentNode-Eigenschaft gleich nullNULL-Verweis (Nothing in Visual Basic).
Beispiele
In diesem Beispiel wird überprüft, ob die AnalysisAlternate mit dem Namen selectedAlternate die gleiche Segmentierung wie die erste Alternative in der AnalysisAlternateCollection mit dem Namen currentAlternates hat. Die Segmentierung gibt an, wie die Striche in ContextNode-Objekten aufgegliedert werden.
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;
}
}
}
}
}
}
Plattformen
Windows Vista
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Versionsinformationen
.NET Framework
Unterstützt in: 3.0