ContextLink-Klasse
Stellt eine Beziehung zwischen zwei ContextNode-Objekten dar, die keine Parent-Child-Beziehung ist.
Namespace: Microsoft.Ink
Assembly: Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.dll)
Syntax
'Declaration
Public Class ContextLink
'Usage
Dim instance As ContextLink
public class ContextLink
public ref class ContextLink
public class ContextLink
public class ContextLink
Hinweise
Beispiele für die Beziehung, die durch eine ContextLink-Beziehung dargestellt wird, sind:
Ein ParagraphNode, der von einem InkDrawingNode umgeben ist. Ein ContextLink-Objekt wird erstellt und den Links-Eigenschaften des ParagraphNode und des InkDrawingNode hinzugefügt. Der SourceNode entspricht dem InkDrawingNode, und der DestinationNode ist der ParagraphNode.
Ein AnalysisHintNode und ein WritingRegionNode. Wenn ein AnalysisHintNode in der Freihandanalyse verwendet wird, wird ein ContextLink zwischen dem WritingRegionNode und dem AnalysisHintNode erstellt. Der SourceNode entspricht dem AnalysisHintNode, und der DestinationNode ist der WritingRegionNode.
Zwei InkDrawingNode-Objekte, zwischen denen wie in einem Flussdiagramm eine Linie gezeichnet wird.
Zum Bestimmen der Beziehung zwischen SourceNode und DestinationNode rufen Sie die InkDrawingNode.SemanticType-Eigenschaft bzw. die WritingRegionNode.SemanticType-Eigenschaft des betreffenden Knotens ab.
Beispiele
Im folgenden Beispiel werden alle Knoten gesucht, die mit dem ContextNode-Knoten selectedNode verknüpft sind. Wenn selectedNode kein Zielknoten ist, wird der Zielknoten einer ArrayList mit dem Namen destinationNodes hinzugefügt. Wenn selectedNode nicht der Quellknoten ist, wird er einer ArrayList mit dem Namen sourceNodes hinzugefügt.
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);
}
}
Im folgenden Beispiel werden alle WritingRegionNode-Objekte in der Knotenstruktur eines InkAnalyzer namens theInkAnalyzerWithHint gesucht. Dann werden alle Knoten, die mit einem AnalysisHintNode mit dem Factoid "IS_DATE_FULLDATE" verknüpft sind, in eine ContextNodeCollection namens writingRegionsWithFactoids eingefügt.
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);
}
}
}
}
Vererbungshierarchie
System.Object
Microsoft.Ink.ContextLink
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows Vista
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Versionsinformationen
.NET Framework
Unterstützt in: 3.0