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 :
Un nœud Paragraph entouré par un nœud InkDrawing. Un objet ContextLinkBase est créé et ajouté aux propriétés Links des nœuds Paragraph et InkDrawing. La propriété SourceNode correspond au nœud InkDrawing et la propriété DestinationNode au nœud Paragraph.
Un nœud AnalysisHint et un nœud WritingRegion. Lorsqu'un nœud AnalysisHint est utilisé dans l'analyse d'entrée manuscrite, un ContextLinkBase est créé entre le nœud WritingRegion et le nœud AnalysisHint(). La propriété SourceNode correspond au nœud AnalysisHint et la propriété DestinationNode au nœud WritingRegion.
Deux nœuds InkDrawing reliés par une ligne, comme dans un organigramme.
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