Compartir a través de


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

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

ContextNode (Clase)

ContextNode (Miembros)

System.Windows.Ink (Espacio de nombres)

ContextNodeIsNodeTypeAndPropertiesConfirmed()