Freigeben über


AnalysisAlternate.AlternateNodes-Eigenschaft

Ruft die ContextNode-Objekte ab, die dem aktuellen AnalysisAlternate zugeordnet sind.

Namespace:  System.Windows.Ink
Assembly:  IAWinFX (in IAWinFX.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: System.Windows.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.

AlternateNodes gibt immer eine Auflistung von Endknoten zurück. Wenn die AnalysisAlternate() beispielsweise ein LineNode ist, gibt AlternateNodes eine Auflistung von InkWordNode-Objekten, nicht LineNode-Objekte zurück.

Beispiele

In diesem Beispiel wird überprüft, ob die AnalysisAlternate mit dem Namen selectedAlternate dieselbe 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 = 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 i As Integer
            For i = 0 To topAlternate.AlternateNodes.Count - 1
                If topAlternate.AlternateNodes(i).Strokes.Count <> _
                   selectedAlternate.AlternateNodes(i).Strokes.Count Then

                    hasSameSegmentationAsTop = False
                    Exit For
                End If

                Dim stroke As Stroke
                For Each stroke In topAlternate.AlternateNodes(i).Strokes
                    If Not selectedAlternate.AlternateNodes(i).Strokes.Contains(stroke) Then
                        hasSameSegmentationAsTop = False
                        Exit For
                    End If
                Next stroke
            Next i
        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

Siehe auch

Referenz

AnalysisAlternate-Klasse

AnalysisAlternate-Member

System.Windows.Ink-Namespace