次の方法で共有


ContextLink クラス

親子のリレーションシップではない 2 つの ContextNode オブジェクト間のリレーションシップを表します。

名前空間 :  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 によって表されるリレーションシップの例は次のとおりです。

SourceNodeDestinationNode 間のリレーションシップを調べるには、適切なノード上で InkDrawingNode.SemanticType または WritingRegionNode.SemanticType プロパティを使用します。

次の例では、ContextNode ノード selectedNode にリンクされているすべてのノードを検索します。selectedNode がリンク先ノードでない場合、リンク先ノードが ArrayList、destinationNodes に追加されます。selectedNode がリンク元ノードでない場合、ArrayList、sourceNodes に追加されます。

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 オブジェクトすべてを検索します。次に、Factoid が "IS_DATE_FULLDATE" の AnalysisHintNode にリンクされているそれらのオブジェクトを、ContextNodeCollection、writingRegionsWithFactoids に設定します。

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

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

Windows Vista

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

バージョン情報

.NET Framework

サポート対象 : 3.0

参照

参照

ContextLink メンバ

Microsoft.Ink 名前空間

Microsoft.Ink.AnalysisHintNode

ContextNode.Links