Freigeben über


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:

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

Siehe auch

Referenz

ContextLinkBase-Member

System.Windows.Ink.AnalysisCore-Namespace

ContextNodeBase.Links