Compartir a través de


ContextNode.Confirm (Método)

Actualización: noviembre 2007

Establece el tipo de confirmación, que restringe qué puede cambiar InkAnalyzer en relación al nodo.

Espacio de nombres:  Microsoft.Ink
Ensamblado:  Microsoft.Ink.Analysis (en Microsoft.Ink.Analysis.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

Utilice Confirm para permitir al usuario final confirmar que el objeto InkAnalyzer ha analizado correctamente los trazos. Una vez llamado el método Confirm, el objeto InkAnalyzer no cambiará los objetos ContextNode de esos trazos durante el análisis posterior.

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". A continuación, si el usuario final agrega la palabra "mí" después "para" y la aplicación realiza otra llamada al método Analyze, el objeto InkAnalyzer probablemente crearía un nodo InkWord con el valor de "paramí". Sin embargo, si después de la primera llamada a Analyze, la aplicación llama a Confirm en el nodo InkWord de "para" con el valor NodeTypeAndProperties, se produce un comportamiento diferente. Si el usuario final agrega la palabra "mí" y la aplicación realiza otra llamada a Analyze, el nodo de "para" no cambia. El objeto InkAnalyzer reconocería dos nodos InkWord para "mí".

Sólo puede confirmar objetos ContextNode del tipo InkWord y InkDrawing. Si intenta llamar al método Confirm en un nodo que no es un nodo hoja, se genera una excepción InvalidOperationException.

Si llama a InkAnalyzer.RemoveStroke, el objeto ContextNode se establece automáticamente a no confirmado si el trazo que se desea quitar está relacionado con un objeto ContextNode confirmado.

Los métodos SetStrokes, InkAnalyzer.SetStrokesType y InkAnalyzer.SetStrokeType generan una excepción InvalidOperationException si el objeto ContextNode ya está confirmado. El método ReparentStrokes genera la excepción si el nodo de origen o destino está confirmado.

Ejemplos

El ejemplo siguiente es un controlador del evento Control.MouseUp en un PaneltheNotesPanel, que recopila entrada manuscrita a través de un objeto InkCollector, theInkCollector. La aplicación tiene un valor Boolean, confirmMode, establecido por MenuItem, confirmMenuItem. En el modo de "confirmación", el usuario hace clic en una palabra para confirmarla (o desactivar la confirmación si el nodo ya está confirmado). En el ejemplo el evento de presión del mouse se convierte a coordenadas de entrada manuscrita, y se utilizan los métodos HitTest 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. Por último, la aplicación abandona el modo de "confirmación".

Private Sub theNotesPanel_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles theNotesPanel.MouseUp
    If Me.confirmMode = True Then
        ' Translate coordinates into ink dimensions
        Dim hitPoint As New Point(e.X, e.Y)
        Dim panelGraphics As Graphics = Me.theNotesPanel.CreateGraphics()
        Me.theInkCollector.Renderer.PixelToInkSpace(panelGraphics, hitPoint)
        panelGraphics.Dispose()

        ' Find the strokes that the user selected
        Dim selectedStrokes As Strokes = Me.theInkCollector.Ink.HitTest(hitPoint, 10)

        ' Find the ink word nodes that correspond to those strokes
        Dim selectedNodes As ContextNodeCollection = _
            Me.theInkAnalyzer.FindNodesOfType(Microsoft.Ink.ContextNodeType.InkWord, _
            selectedStrokes)

        ' Toggle the confirmation type on these nodes
        Dim selectedNode As ContextNode
        For Each selectedNode In selectedNodes
            If selectedNode.IsConfirmed(ConfirmationType.NodeTypeAndProperties) = True Then
                selectedNode.Confirm(Microsoft.Ink.ConfirmationType.None)
            Else
                selectedNode.Confirm(Microsoft.Ink.ConfirmationType.NodeTypeAndProperties)
            End If
        Next selectedNode

        ' No longer in "confirm" mode
        Me.confirmMode = False
        Me.ConfirmMenuItem.Checked = False
        Me.theInkCollector.Enabled = True
    End If

End Sub
private void theNotesPanel_MouseUp(object sender, MouseEventArgs e)
{
    if (this.confirmMode)
    {
        // Translate coordinates into ink dimensions
        Point hitPoint = new Point(e.X, e.Y);
        Graphics panelGraphics = this.theNotesPanel.CreateGraphics();
        this.theInkCollector.Renderer.PixelToInkSpace(panelGraphics, ref hitPoint);
        panelGraphics.Dispose();

        // Find the strokes that the user selected
        Strokes selectedStrokes = this.theInkCollector.Ink.HitTest(hitPoint, 10);

        // Find the ink word nodes that correspond to those strokes
        ContextNodeCollection selectedNodes =
            this.theInkAnalyzer.FindNodesOfType(Microsoft.Ink.ContextNodeType.InkWord,
            selectedStrokes);

        // Toggle the confirmation type on these nodes
        foreach (ContextNode selectedNode in selectedNodes)
        {
            if (selectedNode.IsConfirmed(ConfirmationType.NodeTypeAndProperties))
            {
                selectedNode.Confirm(Microsoft.Ink.ConfirmationType.None);
            }
            else
            {
                selectedNode.Confirm(Microsoft.Ink.ConfirmationType.NodeTypeAndProperties);
            }
        }

        // No longer in "confirm" mode
        this.confirmMode = false;
        this.confirmMenuItem.Checked = false;
        this.theInkCollector.Enabled = 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)

Microsoft.Ink (Espacio de nombres)