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:
Un nodo Paragraph circondato da un nodo InkDrawing. Viene creato e aggiunto un oggetto ContextLinkBase alle proprietà Links dei nodi Paragraph e InkDrawing. SourceNode è il nodo InkDrawing e DestinationNode è il nodo Paragraph.
Nodo AnalysisHint e nodo WritingRegion. Quando un nodo AnalysisHint viene utilizzato nell'analisi dell'input penna, viene creato un ContextLinkBase tra il nodo WritingRegion e il nodo AnalysisHint(). SourceNode è il nodo AnalysisHint e DestinationNode è il nodo WritingRegion.
Due nodi InkDrawing in mezzo ai quali viene disegnata una riga, come in un diagramma di flusso.
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