Condividi tramite


Metodo ContextNode.Confirm

Aggiornamento: novembre 2007

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

Spazio dei nomi:  System.Windows.Ink
Assembly:  IAWinFX (in IAWinFX.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

Una volta chiamato Confirm, l'oggetto InkAnalyzer non modificherà gli oggetti ContextNode associati ai tratti quando InkAnalyzer esegue l'analisi successiva.

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 "to". Se l'utente finale aggiunge quindi "me" dopo "to" come un'unica 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 con il valore "to" NodeTypeAndProperties, l'aggiunta di "me" non modifica il nodo. 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 InkAnalyzerRemoveStroke(Int32) e il tratto da rimuovere è correlato a un oggetto ContextNode confermato, l'oggetto ContextNode viene automaticamente impostato su non confermato.

SetStrokes(array<Int32[]) e ReparentStroke(Int32, ContextNode) generano un'eccezione InvalidOperationException se l'oggetto ContextNode è già confermato. ReparentStroke(Int32, ContextNode) genera l'eccezione se il nodo di origine o di destinazione è confermato.

Esempi

L'esempio seguente consente all'utente di indicare quali tratti sono stati analizzati correttamente. In questo esempio viene definito un gestore per l'evento PreviewMouseUp in un oggetto InkCanvas, theInkCanvas. Quando l'oggetto CheckBox, confirmMode, viene selezionato, l'utente fa clic su una parola per confermarla (o per disattivare la conferma se il nodo è già confermato). Nell'esempio vengono utilizzati StrokeCollection.HitTest(Point) e FindNodesOfType per trovare i nodi appropriati. Una volta trovati i nodi, viene chiamato Confirm per attivare o disattivare la conferma. Infine, viene ricompilato TreeView per mostrare quali nodi sono stati confermati e viene gestito l'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;
    }
}

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 System.Windows.Ink

ContextNodeIsNodeTypeAndPropertiesConfirmed()