ContextLinkBase 類別
ContextLink 的基底類別 (Base Class)。表示兩個 ContextNodeBase 物件之間不具父-子關係 (Parent-Child Relationship) 的關聯性 (Relationship)。
命名空間: System.Windows.Ink.AnalysisCore
組件: IACore (在 IACore.dll 中)
語法
'宣告
Public Class ContextLinkBase
'用途
Dim instance As ContextLinkBase
public class ContextLinkBase
public ref class ContextLinkBase
public class ContextLinkBase
public class ContextLinkBase
備註
以 ContextLinkBase 物件表示的關聯性範例包括:
InkDrawing 節點包圍的 Paragraph 節點。ContextLinkBase 物件隨即建立,並且加入至 Paragraph 節點和 InkDrawing 節點的 Links 屬性中。SourceNode 是 InkDrawing 節點,而且 DestinationNode 是 Paragraph 節點。
AnalysisHint 節點和 WritingRegion 節點。在筆墨分析中使用 AnalysisHint 節點時,會在 WritingRegion 節點和 AnalysisHint() 節點之間建立 ContextLinkBase。SourceNode 是 AnalysisHint 節點,而且 DestinationNode 是 WritingRegion 節點。
兩個 InkDrawing 節點,這兩個節點之間會繪製一條線,如流程圖中所示。
若要判斷 SourceNode 和 DestinationNode 之間的關聯性,請呼叫 GetPropertyData 方法以取得 SemanticType。
範例
下列範例會尋找所有連結至名為 selectedNode 之 ContextNodeBase 節點的節點。如果 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 物件。範例中會將連結至 PropertyGuidsForAnalysisHintsBase 且具有 Factoid 值 "IS_DATE_FULLDATE" 的這些節點放入 ContextNodeCollection (名為 writingRegionsWithFactoids) 中。
Dim writingRegionsWithFactoids As _
New ContextNodeBaseCollection(Me.theInkAnalyzerWithHint)
Dim allWritingRegions As ContextNodeBaseCollection = _
Me.theInkAnalyzerWithHint.FindNodesOfType( _
ContextNodeTypeBase.WritingRegion)
Dim writingRegion As ContextNodeBase
For Each writingRegion In allWritingRegions
' See if they are linked to any factoid
Dim link As ContextLinkBase
For Each link In writingRegion.Links
If link.SourceNode.Type = ContextNodeType.AnalysisHint And _
link.SourceNode.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) Then
If CType(link.SourceNode.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid), String) _
= "IS_DATE_FULLDATE" Then
writingRegionsWithFactoids.Add(writingRegion)
End If
End If
Next link
Next writingRegion
ContextNodeBaseCollection writingRegionsWithFactoids =
new ContextNodeBaseCollection(this.theInkAnalyzerBaseWithHint);
ContextNodeBaseCollection allWritingRegions =
this.theInkAnalyzerBaseWithHint.FindNodesOfType(
System.Windows.Ink.AnalysisCore.ContextNodeTypeBase.WritingRegion);
foreach (ContextNodeBase writingRegion in allWritingRegions)
{
// See if they are linked to any factoid
foreach (ContextLinkBase link in writingRegion.Links)
{
if (link.SourceNode.Type == ContextNodeTypeBase.AnalysisHint &&
link.SourceNode.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid))
{
if ((string) link.SourceNode.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid)
== "IS_DATE_FULLDATE")
{
writingRegionsWithFactoids.Add(writingRegion);
}
}
}
}
繼承階層架構
System.Object
System.Windows.Ink.AnalysisCore.ContextLinkBase
執行緒安全
這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。
平台
Windows Vista, Windows XP SP2, Windows Server 2003
.NET Framework 和 .NET Compact Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱 .NET Framework 系統需求。
版本資訊
.NET Framework
支援版本:3.0