Freigeben über


ContextNode.Confirm-Methode

Legt den Bestätigungstyp fest und schränkt dadurch ein, welche Angaben der InkAnalyzer über den Knoten ändern kann.

Namespace:  System.Windows.Ink
Assembly:  IAWinFX (in IAWinFX.dll)

Syntax

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

Parameter

Hinweise

Nach dem Aufruf von Confirm, wird der InkAnalyzer die ContextNode-Objekte mit diesen Strichen nicht verändern, wenn der InkAnalyzer eine spätere Analyse durchführt.

Wenn der Endbenutzer beispielsweise das Wort "to" schreibt und Ihre Anwendung dann Analyze aufruft, erstellt der InkAnalyzer einen InkWord-Knoten mit dem Wert "to". Wenn der Endbenutzer dann "me" nach "to" in einem Wort anfügt und die Anwendung Analyze erneut aufruft, erstellt der InkAnalyzer möglicherweise einen InkWord-Knoten mit dem Wert "tome".

Wenn jedoch nach dem ersten Aufruf von Analyze, die Anwendung Confirm für den InkWord-Knoten mit dem "to"-Wert NodeTypeAndProperties aufruft, verändert das Hinzufügen von "me" den Knoten nicht. Der InkAnalyzer würde zwei InkWord-Knoten für "to me" erkennen.

Sie können nur ContextNode-Objekte vom Typ InkWord und InkDrawing bestätigen. Wenn Sie versuchen, Confirm für einen Knoten aufzurufen, der kein Endknoten ist, wird eine InvalidOperationException ausgelöst.

Wenn Sie InkAnalyzerRemoveStroke(Int32) aufrufen und sich der zu löschende Strich auf ein bestätigtes ContextNode-Objekt bezieht, wird das ContextNode-Objekt automatisch auf unbestätigt festgelegt.

SetStrokes(array<Int32[]) und ReparentStroke(Int32, ContextNode) lösen eine InvalidOperationException aus, wenn das ContextNode-Objekt bereits bestätigt ist. ReparentStroke(Int32, ContextNode) löst die Ausnahme aus, wenn entweder der Quell- oder der Zielknoten bestätigt ist.

Beispiele

Im folgenden Beispiel kann der Benutzer angeben, welche Striche ordnungsgemäß analysiert wurden. Dieses Beispiel zeigt einen Ereignishandler für ein PreviewMouseUp-Ereignis auf einem InkCanvas, theInkCanvas. Wenn CheckBox, confirmMode, aktiviert wird, klickt der Benutzer auf ein Wort, um es zu bestätigen (oder um die Bestätigung zu deaktivieren, wenn der Knoten bereits bestätigt wurde). Im Beispiel werden StrokeCollection.HitTest(Point) und FindNodesOfType verwendet, um die entsprechenden Knoten zu suchen. Nachdem die Knoten gefunden wurden, wird Confirm aufgerufen, um die Bestätigung umzuschalten. Schließlich wird die TreeView erneut erstellt, um anzuzeigen, welche Knoten bestätigt wurden, und das PreviewMouseUp-Ereignis wird behandelt.

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

Plattformen

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Versionsinformationen

.NET Framework

Unterstützt in: 3.0

Siehe auch

Referenz

ContextNode-Klasse

ContextNode-Member

System.Windows.Ink-Namespace

ContextNodeIsNodeTypeAndPropertiesConfirmed()