Partager via


AnalysisAlternateBase.AlternateNodes, propriété

Mise à jour : November 2007

Obtient les objets ContextNodeBase associés à cette proposition de substitution.

Espace de noms :  System.Windows.Ink.AnalysisCore
Assembly :  IACore (dans IACore.dll)

Syntaxe

'Déclaration
Public ReadOnly Property AlternateNodes As ContextNodeBaseCollection
'Utilisation
Dim instance As AnalysisAlternateBase
Dim value As ContextNodeBaseCollection

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

Valeur de propriété

Type : System.Windows.Ink.AnalysisCore.ContextNodeBaseCollection
Objets ContextNodeBase associés à cette proposition de substitution.

Notes

Puisqu'ils correspondent à des propositions de substitution, ces objets ContextNodeBase ne sont pas des descendants de la propriété RootNode du InkAnalyzerBase, à moins qu'ils ne constituent la meilleure proposition de substitution, qui correspond au premier élément d'un AnalysisAlternateBaseCollection.

Exemples

Cet exemple détermine si un AnalysisAlternateBase, selectedAlternate, présente la même segmentation que la meilleure proposition de substitution dans un AnalysisAlternateBaseCollection, currentAlternates. Par segmentation, on entend la manière dont les traits sont séparés en objets ContextNodeBase.

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;
                    }
                }
            }
        }
    }
}

Plateformes

Windows Vista, Windows XP SP2, Windows Server 2003

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

AnalysisAlternateBase, classe

Membres AnalysisAlternateBase

System.Windows.Ink.AnalysisCore, espace de noms