ContextLinkBase-Klasse
Die Basisklasse für ContextLink. Stellt eine Beziehung zwischen zwei ContextNodeBase-Objekten dar, die keine hierarchische Beziehung ist.
Namespace: System.Windows.Ink.AnalysisCore
Assembly: IACore (in IACore.dll)
Syntax
'Declaration
Public Class ContextLinkBase
'Usage
Dim instance As ContextLinkBase
public class ContextLinkBase
public ref class ContextLinkBase
public class ContextLinkBase
public class ContextLinkBase
Hinweise
Beispiele für die Beziehung, die durch ein ContextLinkBase-Objekt dargestellt wird, sind:
Ein Paragraph-Knoten, der von einem InkDrawing-Knoten umgeben ist. Ein ContextLinkBase-Objekt wird erstellt und den Links-Eigenschaften des Paragraph-Knotens und des InkDrawing-Knotens hinzugefügt. Bei SourceNode handelt es sich um den InkDrawing-Knoten und bei DestinationNode um den Paragraph-Knoten.
Ein AnalysisHint-Knoten und ein WritingRegion-Knoten. Wenn ein AnalysisHint-Knoten in der Freihandanalyse verwendet wird, wird ContextLinkBase zwischen dem WritingRegion-Knoten und dem AnalysisHint()-Knoten erstellt. Bei SourceNode handelt es sich um den AnalysisHint-Knoten und bei DestinationNode um den WritingRegion-Knoten.
Zwei InkDrawing-Knoten, wobei wie in einem Flussdiagramm eine Linie zwischen den Knoten gezeichnet wird.
Zum Bestimmen der Beziehung zwischen SourceNode und DestinationNode rufen Sie SemanticType ab, indem Sie die GetPropertyData-Methode aufrufen.
Beispiele
Im folgenden Beispiel werden alle Knoten gesucht, die mit dem ContextNodeBase-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);
}
}
Das folgende Beispiel findet alle WritingRegionNode-Objekte in der Knotenstruktur eines InkAnalyzer namens theInkAnalyzerWithHint. Es setzt die Knoten, die mit PropertyGuidsForAnalysisHintsBase mit einem Factoid-Wert von "IS_DATE_FULLDATE" verknüpft sind, in eine ContextNodeCollection mit dem Namen 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);
}
}
}
}
Vererbungshierarchie
System.Object
System.Windows.Ink.AnalysisCore.ContextLinkBase
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows Vista, Windows XP SP2, Windows Server 2003
.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