ContextNode.SetStrokes (Método)
Actualización: noviembre 2007
Establece los trazos especificados en un objeto ContextNode.
Espacio de nombres: System.Windows.Ink
Ensamblado: IAWinFX (en IAWinFX.dll)
Sintaxis
'Declaración
Public Sub SetStrokes ( _
strokes As StrokeCollection _
)
'Uso
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
)
Parámetros
- strokes
Tipo: System.Windows.Ink.StrokeCollection
Colección StrokeCollection que el objeto ContextNode adquiere.
Comentarios
Este método no actualiza la propiedad DirtyRegion.
Si alguno de los trazos especificados de la colección de trazos ya está establecido en el objeto InkAnalyzer, se inicia una excepción ArgumentException.
Ejemplos
El ejemplo siguiente es un método denominado PopulateNode que utiliza un control TreeView como modelo de documento para mostrar cómo se puede usar el proxy de datos para almacenar y cargar un árbol de nodos de contexto para un objeto InkAnalyzer. La clase DocumentNodeData almacena los datos de ContextNode en el modelo de documento cuando la propiedad Tag de cada objeto TreeViewItem 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 control TreeViewItem correspondiente.
this[analyzerNode.Id] es un indizador de la clase del modelo de documento que asigna un objeto Guid a un control TreeViewItem. (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 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();
}
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