Condividi tramite


Enumerazione ConfirmationType

Aggiornamento: novembre 2007

Definisce i valori che specificano la conferma del tipo che può verificarsi in un oggetto ContextNode.

Questa enumerazione dispone di un attributo FlagsAttribute che consente una combinazione bit per bit dei valori dei membri.

Spazio dei nomi:  System.Windows.Ink
Assembly:  IAWinFX (in IAWinFX.dll)

Sintassi

'Dichiarazione
<FlagsAttribute> _
Public Enumeration ConfirmationType
'Utilizzo
Dim instance As ConfirmationType
[FlagsAttribute]
public enum ConfirmationType
[FlagsAttribute]
public enum class ConfirmationType
/** @attribute FlagsAttribute */
public enum ConfirmationType
public enum ConfirmationType

Membri

Nome membro Descrizione
None Specifica che non è applicata alcuna conferma. InkAnalyzer è libero di modificare un nodo di contesto o i relativi discendenti in base alle necessità.
NodeTypeAndProperties Specifica che InkAnalyzer non può modificare il tipo o le proprietà del nodo di contesto specificato.
TopBoundary Specifica che InkAnalyzer non eseguirà operazioni, compresa l'aggiunta di input penna o l'unione con altri oggetti ContextNode, che provocano lo spostamento del limite superiore dell'oggetto ContextNode specificato oltre il limite superiore corrente.

Note

È possibile utilizzare NodeTypeAndProperties solo per gli oggetti ContextNode di tipo InkWord e InkDrawing. In caso contrario, viene generata un'eccezione InvalidOperationException.

Utilizzare TopBoundary per garantire che InkAnalyzer NON esegua alcuna operazione, compresa l'aggiunta dell'input penna o l'unione con altri oggetti ContextNode. In caso contrario, il limite superiore dell'oggetto ContextNode può spostarsi oltre il limite corrente e pertanto causare l'espansione di ContextNode. Ad esempio, si supponga che l'utente di un'applicazione scriva un paragrafo. Durante l'analisi, InkAnalyzer crea un oggetto ParagraphNode per quel paragrafo. L'applicazione quindi può chiamare Confirm, passando TopBoundary. Se l'utente aggiunge un nuovo input penna sopra il paragrafo, InkAnalyzer non incorpora il nuovo input penna nell'oggetto ParagraphNode confermato quando InkAnalyzer esegue l'analisi del nuovo input penna.

Nota

Quando si utilizza TopBoundary, l'oggetto ContextNode può continuare a espandersi in altre direzioni. L'eliminazione di tratti può fare in modo che il limite superiore dell'oggetto ContextNode venga spostato verso il basso. La conversione dell'oggetto ContextNode può provocare la modifica della posizione, ma non consentirà che un input penna aggiuntivo venga unito nella nuova posizione.

Questo oggetto TopBoundary è applicabile solo ai nodi di paragrafo.

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 denominato 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

Spazio dei nomi System.Windows.Ink

ContextNode.Confirm

ContextNodeIsNodeTypeAndPropertiesConfirmed()