ContextNode.SetStrokes-Methode
Legt die Striche auf einem ContextNode-Objekt fest.
Namespace: System.Windows.Ink
Assembly: IAWinFX (in IAWinFX.dll)
Syntax
'Declaration
Public Sub SetStrokes ( _
strokes As StrokeCollection _
)
'Usage
Dim instance As ContextNode
Dim strokes As StrokeCollection
instance.SetStrokes(strokes)
public void SetStrokes(
StrokeCollection strokes
)
public:
void SetStrokes(
StrokeCollection^ strokes
)
public void SetStrokes(
StrokeCollection strokes
)
public function SetStrokes(
strokes : StrokeCollection
)
Parameter
- strokes
Typ: System.Windows.Ink.StrokeCollection
Die StrokeCollection, die das ContextNode-Objekt erwirbt.
Hinweise
Diese Methode überschreibt den DirtyRegion nicht.
Wenn einer der angegebenen Striche in der Strichauflistung bereits auf den InkAnalyzer festgelegt wurde, wird eine ArgumentException ausgelöst.
Beispiele
Das folgende Beispiel ist eine Methode mit dem Namen PopulateNode, die ein TreeView als Dokumentmodell verwendet, um zu zeigen wie ein Datenproxy zum Speichern und Laden einer Kontextknotenstruktur für einen InkAnalyzer verwendet werden kann. Die DocumentNodeData-Klasse speichert die ContextNode-Daten im Dokumentmodell, wenn die Tag-Eigenschaft jedes TreeViewItem-Objekts auf ein DocumentNodeData-Objekt festgelegt wird.
Die PopulateNode-Methode füllt ein ContextNode-Objekt vollständig auf, indem sie Striche, Eigenschaftsdaten, Anmerkungsdaten, untergeordnete Knoten und Verweise von einem InkAnalyzer-Objekt hinzufügt. Sie verwendet SetStrokes zum Hinzufügen der Striche. Die Daten stammen aus dem DocumentNodeData-Objekt, das vom entsprechenden TreeViewItem erhalten wird.
this[analyzerNode.Id] ist ein Indexer auf der Dokumentmodellklasse, die einem TreeViewItem eine Guid zuordnet. (Me(analyzerNode.Id) in VB.NET)
AddLinksToAnalyer ist eine Methode für die Dokumentmodellklasse, die Verknüpfungen zum ContextNode hinzufügt.
Nachdem der Knoten vollständig aufgefüllt wird, wird die PartiallyPopulated-Eigenschaft auf false festgelegt. Weitere Informationen zu Datenproxys finden Sie unter Data Proxy with Ink Analysis.
Sub PopulateNode(ByVal analyzerNode As ContextNode, ByVal theInkAnalyzer As InkAnalyzer) Implements IDocumentModel.PopulateNode
System.Diagnostics.Debug.WriteLine(String.Format("IDocumentModel.PopulateNode: populate {0} {1}.", analyzerNode.ToString(), GetRecognizedString(analyzerNode)))
System.Diagnostics.Debug.Indent()
' Get the document node associated with the analyzer node.
Dim documentNode As TreeViewItem = Me(analyzerNode.Id)
If documentNode Is Nothing Then
Throw New ApplicationException("The requested node does not exist in the document model.")
End If
' Get the data associated with the node.
Dim nodeData As DocumentNodeData = documentNode.Tag '
' Copy any application specific data associated with the node to the
' partially populated ContextNode.
For Each identifier As Guid In nodeData.GetPropertyDataIds()
analyzerNode.AddPropertyData(identifier, nodeData.GetPropertyData(identifier))
Next identifier
' Check if the partially populated ContextNode is an ink leaf node.
If nodeData.IsInkLeafNode Then
' Add the strokes to the context node.
analyzerNode.SetStrokes(nodeData.Strokes)
Else
' Add each child subnode as a partially populated ContextNode.
Dim documentSubNode As TreeViewItem
For Each documentSubNode In documentNode.Items
' Get the DocumentNode data for the
Dim subNodeData As DocumentNodeData = documentSubNode.Tag '
If analyzerNode.SubNodes.IndexOf(nodeData.Id) <> -1 Then
analyzerNode.CreatePartiallyPopulatedSubNode( _
subNodeData.Type, subNodeData.Id, subNodeData.Location)
End If
Next documentSubNode
End If
' Add links to the ContextNode.
Me.AddLinksToAnalyzer(documentNode, analyzerNode, theInkAnalyzer)
' Update the partially populated flag.
analyzerNode.PartiallyPopulated = False
System.Diagnostics.Debug.Unindent()
End Sub 'IDocumentModel.PopulateNode
void IDocumentModel.PopulateNode(
ContextNode analyzerNode,
InkAnalyzer theInkAnalyzer)
{
System.Diagnostics.Debug.WriteLine(string.Format(
"IDocumentModel.PopulateNode: populate {0} {1}.",
analyzerNode.ToString(), GetRecognizedString(analyzerNode)));
System.Diagnostics.Debug.Indent();
// Get the document node associated with the analyzer node.
TreeViewItem documentNode = this[analyzerNode.Id];
if (null == documentNode)
{
throw new ApplicationException(
"The requested node does not exist in the document model.");
}
// Get the data associated with the node.
DocumentNodeData nodeData = documentNode.Tag as DocumentNodeData;
// Copy any application specific data associated with the node to the
// partially populated ContextNode.
foreach (Guid identifier in nodeData.GetPropertyDataIds())
{
analyzerNode.AddPropertyData(
identifier, nodeData.GetPropertyData(identifier));
}
// Check if the partially populated ContextNode is an ink leaf node.
if (nodeData.IsInkLeafNode)
{
// Add the strokes to the context node.
analyzerNode.SetStrokes(nodeData.Strokes);
}
else
{
// Add each child subnode as a partially populated ContextNode.
foreach (TreeViewItem documentSubNode in documentNode.Items)
{
// Get the DocumentNode data for the
DocumentNodeData subNodeData = documentSubNode.Tag as DocumentNodeData;
if (analyzerNode.SubNodes.IndexOf(nodeData.Id) != -1)
{
analyzerNode.CreatePartiallyPopulatedSubNode(
subNodeData.Type, subNodeData.Id, subNodeData.Location);
}
}
}
// Add links to the ContextNode.
this.AddLinksToAnalyzer(documentNode, analyzerNode, theInkAnalyzer);
// Update the partially populated flag.
analyzerNode.PartiallyPopulated = false;
System.Diagnostics.Debug.Unindent();
}
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