ContextNode.SetStrokes (Método)
Actualización: noviembre 2007
Establece los trazos especificados en un objeto ContextNode.
Espacio de nombres: Microsoft.Ink
Ensamblado: Microsoft.Ink.Analysis (en Microsoft.Ink.Analysis.dll)
Sintaxis
'Declaración
Public Sub SetStrokes ( _
strokes As Strokes _
)
'Uso
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
)
Parámetros
- strokes
Tipo: Microsoft.Ink.Strokes
Objeto Strokes que adquiere el objeto ContextNode.
Comentarios
Este método no actualiza la propiedad DirtyRegion.
Si cualquiera de los trazos especificados de la colección de trazos ya está establecido en el objeto InkAnalyzer, se genera una excepción ArgumentException.
Ejemplos
El ejemplo siguiente es un método denominado PopulateNode perteneciente a código de ejemplo que utiliza System.Windows.Forms.TreeView como un modelo de documento para mostrar cómo se puede utilizar el proxy de datos para almacenar y cargar un árbol de nodos de contexto de un objeto InkAnalyzer. La clase DocumentNodeData almacena los datos del objeto ContextNode en el modelo de documento si la propiedad Tag de cada objeto TreeNode se establece en un objeto DocumentNodeData.
El método PopulateNode rellena totalmente un objeto ContextNode agregando trazos, datos de la propiedad, tipo de anotación, nodos secundarios y vínculos de un objeto InkAnalyzer. Utiliza el método SetStrokes para agregar los trazos. Los datos proceden del objeto DocumentNodeData que se obtiene del objeto TreeNode correspondiente.
this[analyzerNode.Id] es un indizador en la clase del modelo de documento que asigna un objeto Guid a un objeto TreeNode. (Me(analyzerNode.Id) en VB.NET)
AddLinksToAnalyer es un método en la clase del modelo de documento que agrega vínculos al objeto ContextNode.
Una vez rellenado totalmente el nodo, la propiedad PartiallyPopulated se establece en false. Para obtener más información sobre el proxy de datos, vea 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();
}
Plataformas
Windows Vista
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Información de versión
.NET Framework
Compatible con: 3.0