Partager via


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.

ms571598.alert_note(fr-fr,VS.90).gifRemarque :

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

Voir aussi

Référence

AnalysisAlternate, classe

Membres AnalysisAlternate

Microsoft.Ink, espace de noms