AnalysisAlternate.AlternateNodes, propriété
Mise à jour : November 2007
Obtient les objets ContextNode qui sont associés à cette proposition de substitution.
Espace de noms : Microsoft.Ink
Assembly : Microsoft.Ink.Analysis (dans Microsoft.Ink.Analysis.dll)
Syntaxe
'Déclaration
Public ReadOnly Property AlternateNodes As ContextNodeCollection
'Utilisation
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
Valeur de propriété
Type : Microsoft.Ink.ContextNodeCollection
Objets ContextNode qui sont associés à cette proposition de substitution.
Notes
Étant donné qu'ils correspondent à des propositions de substitution, ces objets ContextNode ne sont pas descendants de la propriété RootNode du InkAnalyzer, à moins qu'ils ne soient la meilleure proposition de substitution, qui correspond au premier élément d'un AnalysisAlternateCollection.
Les nœuds retournés sont les nœuds terminaux correspondant à la proposition de substitution.
AlternateNodes retourne toujours une collection des nœuds terminaux, autrement dit, lors d'un appel sur un LineNode, la collection contient des InkWordNode, et pas des LineNode.
![]() |
---|
Dans cette version, les nœuds de substitution ont une propriété ParentNode ayant la valeur nullune référence null (Nothing en Visual Basic). |
Exemples
Cet exemple vérifie si un AnalysisAlternate, selectedAlternate, a la même segmentation que la meilleure proposition de substitution dans un AnalysisAlternateCollection, currentAlternates. Par segmentation, on entend la manière dont les traits sont découpés en objets 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.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;
}
}
}
}
}
}
Plateformes
Windows Vista
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Informations de version
.NET Framework
Pris en charge dans : 3.0