Partager via


ContextLinkBase, classe

Mise à jour : November 2007

Classe de base pour ContextLink. Représente une relation, autre qu'une relation parent-enfant, entre deux objets ContextNodeBase.

Espace de noms :  System.Windows.Ink.AnalysisCore
Assembly :  IACore (dans IACore.dll)

Syntaxe

'Déclaration
Public Class ContextLinkBase
'Utilisation
Dim instance As ContextLinkBase
public class ContextLinkBase
public ref class ContextLinkBase
public class ContextLinkBase
public class ContextLinkBase

Notes

Les exemples de relations représentées par un objet ContextLinkBase incluent :

Pour déterminer la relation entre SourceNode et DestinationNode, appelez la méthode GetPropertyData afin d'obtenir le SemanticType.

Exemples

L'exemple suivant recherche tous les nœuds liés au nœud ContextNodeBase, selectedNode. Si selectedNode n'est pas un nœud de destination, le nœud de destination est ajouté à un ArrayList (page pouvant être en anglais) nommé destinationNodes. Si selectedNode n'est pas le nœud source, il est ajouté à un ArrayList (page pouvant être en anglais) nommé 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);
    }

}

L'exemple suivant recherche tous les objets WritingRegionNode dans l'arborescence des nœuds d'un InkAnalyzer nommé theInkAnalyzerWithHint. Il place les nœuds liés à un PropertyGuidsForAnalysisHintsBase dont la valeur Factoid est "IS_DATE_FULLDATE" dans un ContextNodeCollection nommé writingRegionsWithFactoids.

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);
            }
        }
    }
}

Hiérarchie d'héritage

System.Object
  System.Windows.Ink.AnalysisCore.ContextLinkBase

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Plateformes

Windows Vista, Windows XP SP2, Windows Server 2003

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Informations de version

.NET Framework

Pris en charge dans : 3.0

Voir aussi

Référence

Membres ContextLinkBase

System.Windows.Ink.AnalysisCore, espace de noms

ContextNodeBase.Links