ContextLink 類別
表示兩個 ContextNode 物件之間不是父子關係的關聯性 (Relationship)。
命名空間: Microsoft.Ink
組件: Microsoft.Ink.Analysis (在 Microsoft.Ink.Analysis.dll 中)
語法
'宣告
Public Class ContextLink
'用途
Dim instance As ContextLink
public class ContextLink
public ref class ContextLink
public class ContextLink
public class ContextLink
備註
由 ContextLink 關聯性所表示之關聯性的範例包括:
由 InkDrawingNode 包圍的 ParagraphNode。系統會建立 ContextLink 物件,並將它加入至 ParagraphNode 和 InkDrawingNode 的 Links 屬性。SourceNode 是 InkDrawingNode,而 DestinationNode 則是 ParagraphNode。
AnalysisHintNode 和 WritingRegionNode。在筆墨分析中使用 AnalysisHintNode 時,會在 WritingRegionNode 和 AnalysisHintNode 之間建立 ContextLink。SourceNode 是 AnalysisHintNode,而 DestinationNode 則是 WritingRegionNode。
在其中間繪製線條的兩個 InkDrawingNode 物件,如同在流程圖中。
若要判斷 SourceNode 和 DestinationNode 之間的關聯性,請在適當的節點上使用 InkDrawingNode.SemanticType 或 WritingRegionNode.SemanticType 屬性。
範例
下列範例會尋找所有連結至 ContextNode 節點 selectedNode 的節點。如果 selectedNode 不是目的節點,則會將目的節點加入至名為 destinationNodes 的 ArrayList。如果 selectedNode 不是來源節點,則會將它加入至名為 sourceNodes 的 ArrayList。
Dim destinationNodes As ArrayList = New ArrayList()
Dim sourceNodes As ArrayList = New ArrayList()
' Find all the nodes that link to the currently selected node.
For Each link As Microsoft.Ink.ContextLink In selectedNode.Links
If link.DestinationNode <> selectedNode Then
destinationNodes.Add(link.DestinationNode)
End If
If link.SourceNode <> selectedNode Then
sourceNodes.Add(link.SourceNode)
End If
Next
ArrayList destinationNodes = new ArrayList();
ArrayList sourceNodes = new ArrayList();
// Find all the nodes that link to the currently selected node.
foreach (Microsoft.Ink.ContextLink link in selectedNode.Links)
{
if (link.DestinationNode != selectedNode)
{
destinationNodes.Add(link.DestinationNode);
}
if (link.SourceNode != selectedNode)
{
sourceNodes.Add(link.SourceNode);
}
}
下列範例會尋找 InkAnalyzer, theInkAnalyzerWithHint. 之節點樹狀目錄中的所有 WritingRegionNode 物件。接著再將以 "IS_DATE_FULLDATE" 之 Factoid 連結至 AnalysisHintNode 的物件,放入名為 writingRegionsWithFactoids 的 ContextNodeCollection 中。
Dim writingRegionsWithFactoids As _
New ContextNodeCollection(Me.theInkAnalyzerWithHint)
Dim allWritingRegions As ContextNodeCollection = _
Me.theInkAnalyzerWithHint.FindNodesOfType( _
Microsoft.Ink.ContextNodeType.WritingRegion)
Dim writingRegion As WritingRegionNode
For Each writingRegion In allWritingRegions
' See if they are linked to any factoid
Dim link As ContextLink
For Each link In writingRegion.Links
If link.SourceNode.Type = ContextNodeType.AnalysisHint Then
Dim hint As AnalysisHintNode = _
CType(link.SourceNode, AnalysisHintNode)
If hint.Factoid = "IS_DATE_FULLDATE" Then
writingRegionsWithFactoids.Add(writingRegion)
End If
End If
Next link
Next writingRegion
ContextNodeCollection writingRegionsWithFactoids =
new ContextNodeCollection(this.theInkAnalyzerWithHint);
ContextNodeCollection allWritingRegions =
this.theInkAnalyzerWithHint.FindNodesOfType(Microsoft.Ink.ContextNodeType.WritingRegion);
foreach (WritingRegionNode writingRegion in allWritingRegions)
{
// See if they are linked to any factoid
foreach (ContextLink link in writingRegion.Links)
{
if (link.SourceNode.Type == ContextNodeType.AnalysisHint)
{
AnalysisHintNode hint = (AnalysisHintNode) link.SourceNode;
if (hint.Factoid == "IS_DATE_FULLDATE")
{
writingRegionsWithFactoids.Add(writingRegion);
}
}
}
}
繼承階層架構
System.Object
Microsoft.Ink.ContextLink
執行緒安全
這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。
平台
Windows Vista
.NET Framework 和 .NET Compact Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱 .NET Framework 系統需求。
版本資訊
.NET Framework
支援版本:3.0