Partager via


ContextNode.Confirm, méthode

Mise à jour : November 2007

Définit le type de confirmation, en restreignant par conséquent les modifications que le InkAnalyzer peut apporter à propos du nœud.

Espace de noms :  System.Windows.Ink
Assembly :  IAWinFX (dans IAWinFX.dll)

Syntaxe

'Déclaration
Public Sub Confirm ( _
    type As ConfirmationType _
)
'Utilisation
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
)

Paramètres

Notes

Une fois la méthode Confirm appelée, le InkAnalyzer ne modifie pas les objets ContextNode associés à ces traits lorsque le InkAnalyzer exécute l'analyse suivante.

Par exemple, si l'utilisateur final écrit « bon » et que votre application appelle la méthode Analyze, le InkAnalyzer créera un nœud InkWord avec la valeur « bon ». Si l'utilisateur final ajoute « jour » après « bon » pour former un seul mot et que l'application appelle de nouveau la méthode Analyze, le InkAnalyzer créera probablement un nœud InkWord avec la valeur « bonjour ».

Toutefois, si après le premier appel à la méthode Analyze, l'application appelle Confirm sur le nœud InkWord pour « bon » avec la valeur NodeTypeAndProperties, l'ajout de « jour » ne modifie pas le nœud. Le InkAnalyzer reconnaîtrait deux nœuds InkWord pour « bon jour ».

Vous ne pouvez confirmer que des objets ContextNode de type InkWord et InkDrawing. Si vous tentez d'appeler Confirm sur un nœud qui n'est pas un nœud terminal, une exception InvalidOperationException est levée.

Si vous appelez InkAnalyzerRemoveStroke(Int32) et que le trait en cours de suppression est lié à un objet ContextNode confirmé, l'objet ContextNode défini automatiquement comme étant non confirmé.

Les méthodes SetStrokes(array<Int32[]) et ReparentStroke(Int32, ContextNode) lèvent une exception InvalidOperationException si l'objet ContextNode est déjà confirmé. La méthode ReparentStroke(Int32, ContextNode) lève l'exception si le nœud de destination ou le nœud source est confirmé.

Exemples

L'exemple suivant permet à l'utilisateur d'indiquer les traits qui ont été correctement analysés. Cet exemple est un gestionnaire d'événements pour un événement PreviewMouseUp sur un InkCanvas, theInkCanvas. Lorsque le CheckBox, confirmMode, est vérifié, l'utilisateur clique sur un mot pour le confirmer (ou désactiver la confirmation si le nœud est déjà confirmé). Pour rechercher les nœuds appropriés, l'exemple utilise StrokeCollection.HitTest(Point) et FindNodesOfType. Une fois les nœuds localisés, la méthode Confirm est appelée pour activer/désactiver la confirmation. Enfin, le TreeView est reconstitué pour afficher les nœuds confirmés et l'événement PreviewMouseUp est géré.

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

Plateformes

Windows Vista

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Informations de version

.NET Framework

Pris en charge dans : 3.0

Voir aussi

Référence

ContextNode, classe

Membres ContextNode

System.Windows.Ink, espace de noms

ContextNodeIsNodeTypeAndPropertiesConfirmed()