Condividi tramite


Metodo ContextNode.Confirm

Aggiornamento: novembre 2007

Imposta il tipo di conferma che limita ciò che InkAnalyzer può modificare relativamente al nodo.

Spazio dei nomi:  Microsoft.Ink
Assembly:  Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.dll)

Sintassi

'Dichiarazione
Public Sub Confirm ( _
    type As ConfirmationType _
)
'Utilizzo
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
)

Parametri

Note

Utilizzare Confirm per consentire all'utente finale di confermare che InkAnalyzer ha analizzato correttamente i tratti. Una volta chiamato Confirm, InkAnalyzer non modificherà gli oggetti ContextNode per tali tratti durante le analisi successive.

Ad esempio, se l'utente finale scrive la parola "to" e l'applicazione chiama Analyze, l'oggetto InkAnalyzer creerà un nodo InkWord con il valore di "to". Se l'utente finale aggiunge quindi "me" dopo "to" come una sola parola e l'applicazione effettua un'altra chiamata a Analyze, è probabile che InkAnalyzer crei un nodo InkWord con il valore "tome". Tuttavia, se dopo la prima chiamata a Analyze, l'applicazione chiama Confirm nel nodo InkWord per "to" con il valore NodeTypeAndProperties, si verifica un comportamento diverso. Quando l'utente finale aggiunge "me" e l'applicazione effettua un'altra chiamata a Analyze, il nodo "to" non viene modificato. InkAnalyzer riconoscerebbe due nodi InkWord per "to me".

È possibile confermare solo gli oggetti ContextNode di tipo InkWord e InkDrawing. Se si tenta di chiamare Confirm in un nodo che non è un nodo foglia, viene generata un'eccezione InvalidOperationException.

Se si chiama InkAnalyzer.RemoveStroke, l'oggetto ContextNode viene automaticamente impostato su non confermato se il tratto da rimuovere è correlato a un oggetto ContextNode confermato.

SetStrokes, InkAnalyzer.SetStrokesType e InkAnalyzer.SetStrokeType generano un'eccezione InvalidOperationException se l'oggetto ContextNode è già confermato. ReparentStrokes genera l'eccezione se il nodo di origine o di destinazione è confermato.

Esempi

Nell'esempio riportato di seguito viene utilizzato un gestore eventi per l'evento Control.MouseUp in un Panel, theNotesPanel che raccoglie l'input penna tramite un InkCollector, theInkCollector. L'applicazione dispone di un Boolean, confirmMode impostato da un MenuItem, confirmMenuItem. Quando in modalità di "conferma", l'utente fa clic su una parola per confermarla (o per disattivare la conferma se il nodo è già confermato). Nell'esempio viene convertito l'evento di spostamento verso l'alto in coordinate di input penna e vengono utilizzati HitTest e FindNodesOfType per trovare i nodi appropriati. Una volta trovati i nodi, viene chiamato Confirm per attivare o disattivare la conferma. Infine, l'applicazione esce dalla modalità di "conferma".

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;
    }

}

Piattaforme

Windows Vista

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Informazioni sulla versione

.NET Framework

Supportato in: 3.0

Vedere anche

Riferimenti

ContextNode Classe

Membri ContextNode

Spazio dei nomi Microsoft.Ink