Condividi tramite


Classe ContextLinkBase

Aggiornamento: novembre 2007

Classe base per ContextLink. Rappresenta una relazione tra due oggetti ContextNodeBase che non è una relazione padre-figlio.

Spazio dei nomi:  System.Windows.Ink.AnalysisCore
Assembly:  IACore (in IACore.dll)

Sintassi

'Dichiarazione
Public Class ContextLinkBase
'Utilizzo
Dim instance As ContextLinkBase
public class ContextLinkBase
public ref class ContextLinkBase
public class ContextLinkBase
public class ContextLinkBase

Note

Gli esempi della relazione rappresentata dall'oggetto ContextLinkBase includono:

Per determinare la relazione tra SourceNode e DestinationNode ottenere SemanticType chiamando il metodo GetPropertyData.

Esempi

Nell'esempio seguente vengono individuati tutti i nodi collegati al nodo ContextNodeBase, selectedNode. Se selectedNode non è un nodo di destinazione, il nodo di destinazione viene aggiunto a un oggetto ArrayList denominato destinationNodes. Se selectedNode non è il nodo di origine, viene aggiunto a un oggetto ArrayList denominato 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);
    }

}

Nell'esempio seguente vengono trovati tutti gli oggetti WritingRegionNode nella struttura ad albero dei nodi di un oggetto InkAnalyzer denominato theInkAnalyzerWithHint. Questi nodi collegati a un oggetto PropertyGuidsForAnalysisHintsBase con il valore Factoid di "IS_DATE_FULLDATE" vengono inseriti in un oggetto ContextNodeCollection denominato 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);
            }
        }
    }
}

Gerarchia di ereditarietà

System.Object
  System.Windows.Ink.AnalysisCore.ContextLinkBase

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Piattaforme

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Informazioni sulla versione

.NET Framework

Supportato in: 3.0

Vedere anche

Riferimenti

Membri ContextLinkBase

Spazio dei nomi System.Windows.Ink.AnalysisCore

ContextNodeBase.Links