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 对象所表示关系的示例:

若要确定 SourceNodeDestinationNode 之间的关系,请通过调用 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

另请参见

参考

ContextLinkBase 成员

System.Windows.Ink.AnalysisCore 命名空间

ContextNodeBase.Links