AnalysisAlternateBase.AlternateNodes 属性

获取与此备选项关联的 ContextNodeBase 对象。

命名空间:  System.Windows.Ink.AnalysisCore
程序集:  IACore(在 IACore.dll 中)

语法

声明
Public ReadOnly Property AlternateNodes As ContextNodeBaseCollection
用法
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

属性值

类型:System.Windows.Ink.AnalysisCore.ContextNodeBaseCollection
与此备选项关联的 ContextNodeBase 对象。

备注

因为这些 ContextNodeBase 对象对应于备选项,所以除非这些对象是最佳备选项(也就是 AnalysisAlternateBaseCollection 中的第一个元素),否则它们不是 InkAnalyzerBaseRootNode 的后代。

示例

此示例确定 AnalysisAlternateBase (selectedAlternate) 是否与 AnalysisAlternateBaseCollection (currentAlternates) 中的最佳备选项具有相同的分段。分段是指笔画划分为 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;
                    }
                }
            }
        }
    }
}

平台

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

版本信息

.NET Framework

受以下版本支持:3.0

另请参见

参考

AnalysisAlternateBase 类

AnalysisAlternateBase 成员

System.Windows.Ink.AnalysisCore 命名空间