Compartir a través de


AnalysisAlternate.AlternateNodes (Propiedad)

Actualización: noviembre 2007

Obtiene los objetos ContextNode que están asociados a esta alternativa.

Espacio de nombres:  Microsoft.Ink
Ensamblado:  Microsoft.Ink.Analysis (en Microsoft.Ink.Analysis.dll)

Sintaxis

'Declaración
Public ReadOnly Property AlternateNodes As ContextNodeCollection
'Uso
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

Valor de propiedad

Tipo: Microsoft.Ink.ContextNodeCollection
Objetos ContextNode que están asociados a esta alternativa.

Comentarios

Dado que corresponden a alternativas, estos objetos ContextNode no son descendientes de la propiedad RootNode del objeto InkAnalyzer, a menos que sean la alternativa principal, que es el primer elemento de un objeto AnalysisAlternateCollection.

Los nodos devueltos son los nodos de hoja que corresponden a la alternativa.

La propiedad AlternateNodes siempre devuelve una colección de los nodos de hoja, es decir, cuando se llama en un objeto LineNode la colección contendrá objetos InkWordNode, no objetos LineNode.

Nota

Los nodos alternativos de esta versión tienen una propiedad ParentNode igual a nullreferencia null (Nothing en Visual Basic).

Ejemplos

En este ejemplo se comprueba si un objeto AnalysisAlternate, selectedAlternate, tiene la misma segmentación que la alternativa principal de un objeto AnalysisAlternateCollection, currentAlternates. La segmentación hace referencia a cómo los trazos se dividen en objetos 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;
                                    }
                                }
                            }
                        }
                    }
                }

Plataformas

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Información de versión

.NET Framework

Compatible con: 3.0

Vea también

Referencia

AnalysisAlternate (Clase)

AnalysisAlternate (Miembros)

Microsoft.Ink (Espacio de nombres)