次の方法で共有


ContextLink クラス

親子のリレーションシップではない 2 つの 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.SemanticType または WritingRegionNode.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);
    }
}

次の例は、theInkAnalyzerWithHint という名前の InkAnalyzer ノード ツリー内の WritingRegionNode オブジェクトすべてを検索します。次に、Factoid が "IS_DATE_FULLDATE" である AnalysisHintNode にリンクされているオブジェクトを writingRegionsWithFactoids という名前の ContextNodeCollection に配置します。

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