ContextLinkBase 类
ContextLink 的基类。表示两个 ContextNodeBase 对象之间的关系(不是父子关系)。
命名空间: 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。
示例
下面的示例查找链接到 ContextNodeBase 节点 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);
}
}
下面的示例在名为 theInkAnalyzerWithHint 的 InkAnalyzer 的节点树中查找所有 WritingRegionNode 对象。该示例将链接到 Factoid 值为“IS_DATE_FULLDATE”的 PropertyGuidsForAnalysisHintsBase 的那些节点放入名为 writingRegionsWithFactoids 的 ContextNodeCollection 中。
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
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
平台
Windows Vista, Windows XP SP2, Windows Server 2003
.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。
版本信息
.NET Framework
受以下版本支持:3.0