ContextLink-Klasse
Stellt eine nicht hierarchische Beziehung zwischen zwei ContextNode-Objekten dar.
Namespace: System.Windows.Ink
Assembly: IAWinFX (in IAWinFX.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-Objekt, das von einem InkDrawingNode-Objekt umgeben ist. Ein ContextLink-Objekt wird erstellt und den Links-Eigenschaften des ParagraphNode-Knotens und des InkDrawingNode-Knotens hinzugefügt. Der InkDrawingNode entspricht dem SourceNode, und der ParagraphNode entspricht dem DestinationNode.
Ein AnalysisHintNode-Objekt und ein WritingRegionNode-Objekt. Wenn ein AnalysisHintNode-Knoten in der Freihandanalyse verwendet wird, wird eine ContextLink-Beziehung zwischen dem WritingRegionNode-Knoten und dem AnalysisHintNode-Knoten erstellt. Der AnalysisHintNode entspricht dem SourceNode, und der WritingRegionNode entspricht dem DestinationNode.
Zwei InkDrawingNode-Objekte, wobei wie in einem Flussdiagramm eine Linie zwischen den Knoten 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 ContextNodeselectedNode 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 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);
}
}
Im folgenden Beispiel werden alle WritingRegionNode-Knoten in der Knotenstruktur eines InkAnalyzer-Objekts namens theInkAnalyzerWithHint gesucht. Anschließend werden alle Knoten, die mit einem AnalysisHintNode-Objekt mit dem Factoid-Wert "IS_DATE_FULLDATE" verknüpft sind, in einer ContextNodeCollection-Auflistung namens writingRegionsWithFactoids abgelegt.
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);
}
}
}
}
Vererbungshierarchie
System.Object
System.Windows.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