ContextLink 类

表示两个非父/子关系的 ContextNode 对象之间的关系。

命名空间:  System.Windows.Ink
程序集:  IAWinFX(在 IAWinFX.dll 中)

语法

声明
Public Class ContextLink
用法
Dim instance As ContextLink
public class ContextLink
public ref class ContextLink
public class ContextLink
public class ContextLink

备注

ContextLink 关系所表示关系的示例:

若要确定 SourceNodeDestinationNode 之间的关系,可使用相应节点上的 InkDrawingNode.SemanticTypeWritingRegionNode.SemanticType 属性。

示例

下面的示例查找链接到名为 selectedNode 的 ContextNode 的所有节点。如果 selectedNode 不是目标节点,则将目标节点添加到名为 destinationNodes 的 ArrayList。如果 selectedNode 不是源节点,则将该节点添加到名为 sourceNodes 的 ArrayList

Dim destinationNodes As New ArrayList()
Dim sourceNodes As New ArrayList()

' Find all the nodes that link to the currently selected node.
Dim link As ContextLink
For Each link 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 link
ArrayList destinationNodes = new ArrayList();
ArrayList sourceNodes = new ArrayList();

// Find all the nodes that link to the currently selected node.
foreach (ContextLink link in selectedNode.Links)
{
    if (link.DestinationNode != selectedNode)
    {
        destinationNodes.Add(link.DestinationNode);
    }

    if (link.SourceNode != selectedNode)
    {
        sourceNodes.Add(link.SourceNode);
    }
}

下面的示例在某个 InkAnalyzer(名为 theInkAnalyzerWithHint)的节点树中查找所有 WritingRegionNode 对象。然后,将链接到 Factoid 为“IS_DATE_FULLDATE”的 AnalysisHintNode 的对象放入一个 ContextNodeCollection(名为 writingRegionsWithFactoids)中。

Dim writingRegionsWithFactoids As New ContextNodeCollection(Me.theInkAnalyzerWithHint)
Dim allWritingRegions As ContextNodeCollection = Me.theInkAnalyzerWithHint.FindNodesOfType(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(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
  System.Windows.Ink.ContextLink

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

平台

Windows Vista

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

版本信息

.NET Framework

受以下版本支持:3.0

另请参见

参考

ContextLink 成员

System.Windows.Ink 命名空间

System.Windows.Ink.AnalysisHintNode

ContextNode.Links