ContextNode.SetStrokes, méthode
Mise à jour : November 2007
Définit les traits spécifiés sur un objet ContextNode.
Espace de noms : Microsoft.Ink
Assembly : Microsoft.Ink.Analysis (dans Microsoft.Ink.Analysis.dll)
Syntaxe
'Déclaration
Public Sub SetStrokes ( _
strokes As Strokes _
)
'Utilisation
Dim instance As ContextNode
Dim strokes As Strokes
instance.SetStrokes(strokes)
public void SetStrokes(
Strokes strokes
)
public:
void SetStrokes(
Strokes^ strokes
)
public void SetStrokes(
Strokes strokes
)
public function SetStrokes(
strokes : Strokes
)
Paramètres
- strokes
Type : Microsoft.Ink.Strokes
Strokes que l'objet ContextNode acquiert.
Notes
Cette méthode ne met pas à jour la propriété DirtyRegion.
Si l'un des traits spécifiés dans la collection de traits est déjà défini sur le InkAnalyzer, une exception ArgumentException (page pouvant être en anglais) est levée.
Exemples
L'exemple suivant est une méthode nommée PopulateNode, issue d'un exemple de code qui utilise un System.Windows.Forms.TreeView (page pouvant être en anglais) en tant que modèle de document pour montrer comment utiliser le proxy de données afin de stocker et charger une arborescence des nœuds de contexte pour un InkAnalyzer. La classe DocumentNodeData stocke les données ContextNode dans le modèle de document lorsque la propriété Tag (page pouvant être en anglais) de chaque objet TreeNode (page pouvant être en anglais) a pour valeur un objet DocumentNodeData.
La méthode PopulateNode remplit complètement un objet ContextNode en ajoutant des traits, des données de propriété, un type d'annotation, des nœuds enfants et des liens à partir d'un objet InkAnalyzer. Elle utilise la méthode SetStrokes pour ajouter les traits. Les données viennent de l'objet DocumentNodeData obtenu du TreeNode (page pouvant être en anglais) correspondant.
this[analyzerNode.Id] est un indexeur sur la classe de modèle de document qui mappe un Guid (page pouvant être en anglais) à un TreeNode (page pouvant être en anglais). (Me(analyzerNode.Id) dans VB.NET)
AddLinksToAnalyer est une méthode sur la classe de modèle de document qui ajoute des liens au ContextNode.
Lorsque le nœud est complètement rempli, la propriété PartiallyPopulated a la valeur false. Pour plus d'informations sur le proxy de données, consultez Data Proxy with Ink Analysis.
Sub PopulateNode(ByVal analyzerNode As Microsoft.Ink.ContextNode, _
ByVal theInkAnalyzer As Microsoft.Ink.InkAnalyzer) _
Implements IDocumentModel.PopulateNode
System.Diagnostics.Debug.WriteLine( _
String.Format("IDocumentModel.PopulateNode: populate {0} {1}.", _
TreeViewDocumentModel.GetContextNodeTypeName(analyzerNode.Type), analyzerNode.Id))
System.Diagnostics.Debug.Indent()
' Get the document node associated with the analyzer node.
Dim documentNode As TreeNode = 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.
Dim identifier As Guid
For Each identifier 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 TreeNode
For Each documentSubNode In documentNode.Nodes
' 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(
Microsoft.Ink.ContextNode analyzerNode,
Microsoft.Ink.InkAnalyzer theInkAnalyzer)
{
System.Diagnostics.Debug.WriteLine(string.Format(
"IDocumentModel.PopulateNode: populate {0} {1}.",
TreeViewDocumentModel.GetContextNodeTypeName(analyzerNode.Type),
analyzerNode.Id));
System.Diagnostics.Debug.Indent();
// Get the document node associated with the analyzer node.
TreeNode 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 (TreeNode documentSubNode in documentNode.Nodes)
{
// 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();
}
Plateformes
Windows Vista
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Informations de version
.NET Framework
Pris en charge dans : 3.0