取得與這個替代項目相關聯的 ContextNode 物件。
命名空間: Microsoft.Ink
組件: Microsoft.Ink.Analysis (在 Microsoft.Ink.Analysis.dll 中)
語法
'宣告
Public ReadOnly Property AlternateNodes As ContextNodeCollection
'用途
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
屬性值
型別:Microsoft.Ink.ContextNodeCollection
與這個替代項目相關聯的 ContextNode 物件。
備註
因為這些 ContextNode 物件會對應至替代項目,所以除非它們是最佳替代項目 (即 AnalysisAlternateCollection 內的第一個元素),否則不會是 InkAnalyzer 之 RootNode 的子代 (Descendant)。
傳回的節點是對應至替代項目的分葉節點。
AlternateNodes 一定會傳回分葉節點的集合,也就是說,在 LineNode 集合上呼叫時,該集合將包含 InkWordNode,而非 LineNode。
注意事項: |
|---|
這一版的替代節點具有 ParentNode 屬性,其值為 nullNull 參照 (即 Visual Basic 中的 Nothing)。 |
範例
這個範例會檢查 AnalysisAlternate (變數名稱為 selectedAlternate) 的分割是否與 AnalysisAlternateCollection (變數名稱為 currentAlternates) 中的最佳替代項目相同。分割表示筆劃拆成 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;
}
}
}
}
}
}
平台
Windows Vista
.NET Framework 和 .NET Compact Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱 .NET Framework 系統需求。
版本資訊
.NET Framework
支援版本:3.0
注意事項: