ContextNode.Confirm (Método)
Actualización: noviembre 2007
Establece el tipo de confirmación, con lo que se limita lo que puede cambiar InkAnalyzer en relación con el nodo.
Espacio de nombres: System.Windows.Ink
Ensamblado: IAWinFX (en IAWinFX.dll)
Sintaxis
'Declaración
Public Sub Confirm ( _
type As ConfirmationType _
)
'Uso
Dim instance As ContextNode
Dim type As ConfirmationType
instance.Confirm(type)
public void Confirm(
ConfirmationType type
)
public:
void Confirm(
ConfirmationType type
)
public void Confirm(
ConfirmationType type
)
public function Confirm(
type : ConfirmationType
)
Parámetros
- type
Tipo: System.Windows.Ink.ConfirmationType
Objeto ConfirmationType que se aplica al nodo.
Comentarios
Una vez que se ha llamado a Confirm, InkAnalyzer no cambiará los objetos ContextNode asociados a esos trazos cuando InkAnalyzer realice análisis posteriores.
Por ejemplo, si el usuario final escribe la palabra "para" y, a continuación, la aplicación llama al método Analyze, el objeto InkAnalyzer creará un nodo InkWord con el valor de "para". Si el usuario final después agregase la palabra "mí" después de "para" y la aplicación realizase otra llamada al método Analyze, el objeto InkAnalyzer probablemente crearía un nodo InkWord con el valor "paramí".
Sin embargo, si después de la primera llamada a Analyze, la aplicación llama a Confirm en el nodo InkWord con el valor de "para" NodeTypeAndProperties, al agregar "mí" no se cambia el nodo. El objeto InkAnalyzer reconocería dos nodos InkWord para "mí".
Sólo puede confirmar objetos ContextNode del tipo InkWord y InkDrawing. Si se intenta llamar a Confirm en un nodo que no sea un nodo hoja, se inicia una excepción InvalidOperationException.
Si se llama a InkAnalyzerRemoveStroke(Int32) y el trazo que se va a quitar está relacionado con un objeto ContextNode confirmado, el objeto ContextNode se establece como no confirmado de forma automática.
SetStrokes(array<Int32[]) y ReparentStroke(Int32, ContextNode) inician una excepción InvalidOperationException si el objeto ContextNode ya está confirmado. ReparentStroke(Int32, ContextNode) la inicia si se confirma el nodo de origen o de destino.
Ejemplos
En el ejemplo siguiente, se permite al usuario indicar qué trazos se han analizado correctamente. Este ejemplo es un controlador de eventos para un evento PreviewMouseUp en un control InkCanvas, theInkCanvas. Cuando se activa CheckBox, confirmMode, el usuario hace clic en una palabra para confirmarlo (o para desactivar la confirmación, si es que el nodo ya está confirmado). En el ejemplo se utilizan los métodos StrokeCollection.HitTest(Point) y FindNodesOfType para buscar los nodos adecuados. Una vez encontrados los nodos, se llama al método Confirm para activar o desactivar la confirmación. Finalmente, se vuelve a generar TreeView para mostrar qué nodos se han confirmado y se controla el evento PreviewMouseUp.
Sub theInkCanvas_PreviewMouseDown(ByVal sender As Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)
If Me.confirmMode.IsChecked Then
' Find the ink word nodes that correspond to those strokes
Dim position As Point = e.GetPosition(theInkCanvas)
Dim hitStrokes As StrokeCollection = theInkCanvas.Strokes.HitTest(position)
Dim selectedNodes As ContextNodeCollection = _
Me.theInkAnalyzer.FindNodesOfType(ContextNodeType.InkWord, _
hitStrokes)
' Toggle the confirmation type on these nodes
Dim selectedNode As ContextNode
For Each selectedNode In selectedNodes
If selectedNode.IsConfirmed(ConfirmationType.NodeTypeAndProperties) Then
selectedNode.Confirm(ConfirmationType.None)
Else
selectedNode.Confirm(ConfirmationType.NodeTypeAndProperties)
End If
Next selectedNode
' Rebuild the TreeView to show which context nodes are confirmed.
Me.BuildTree()
' Handle the MouseDown event to prevent the InkCanvas from
' selecting the stroke.
e.Handled = True
End If
End Sub 'theInkCanvas_PreviewMouseDown
void theInkCanvas_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if ((bool)this.confirmMode.IsChecked)
{
// Find the ink word nodes that correspond to those strokes
Point position = e.GetPosition(theInkCanvas);
StrokeCollection hitStrokes = theInkCanvas.Strokes.HitTest(position);
ContextNodeCollection selectedNodes =
this.theInkAnalyzer.FindNodesOfType(ContextNodeType.InkWord,
hitStrokes);
// Toggle the confirmation type on these nodes
foreach (ContextNode selectedNode in selectedNodes)
{
if (selectedNode.IsConfirmed(ConfirmationType.NodeTypeAndProperties))
{
selectedNode.Confirm(ConfirmationType.None);
}
else
{
selectedNode.Confirm(ConfirmationType.NodeTypeAndProperties);
}
}
// Rebuild the TreeView to show which context nodes are confirmed.
this.BuildTree();
// Handle the MouseDown event to prevent the InkCanvas from
// selecting the stroke.
e.Handled = true;
}
}
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
Vea también
Referencia
System.Windows.Ink (Espacio de nombres)
ContextNodeIsNodeTypeAndPropertiesConfirmed()