ConfirmationType-Enumeration

Definiert Werte, die die Typbestätigung angeben, die bei einem ContextNode-Objekt auftreten kann.

Diese Enumeration verfügt über ein FlagsAttribute-Attribut, das die bitweise Kombination der Memberwerte zulässt.

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

Syntax

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

Member

Membername Beschreibung
None Gibt an, dass keine Bestätigung angewendet wird. Der InkAnalyzer kann nach Bedarf einen Kontextknoten oder einen seiner Nachfolger ändern.
NodeTypeAndProperties Gibt an, dass der InkAnalyzer keinen Typ oder keine Eigenschaften des angegebenen Kontextknotens ändern kann.
TopBoundary Gibt an, dass der InkAnalyzer keine Vorgänge ausführt. Dazu gehört das Hinzufügen von Freihandeingaben oder das Zusammenführen mit anderen ContextNode, die bewirken, dass die ContextNode über die aktuelle obere Grenze hinaus verschoben wird.

Hinweise

Sie können NodeTypeAndProperties nur für ContextNode-Objekte vom Typ InkWord und InkDrawing verwenden. Andernfalls wird eine InvalidOperationException ausgelöst.

Verwenden Sie TopBoundary, um sicherzustellen, dass der InkAnalyzer keine Vorgänge ausführt, einschließlich des Hinzufügens von Freihandeingaben und des Zusammenführens mit anderen ContextNode-Objekten. Andernfalls könnte die obere Grenze des ContextNode außerhalb der aktuellen Grenze verschoben werden, wodurch der ContextNode erweitert wird. Angenommen, der Benutzer einer Anwendung schreibt einen Absatz. Während der Analyse erstellt der InkAnalyzer einen ParagraphNode für diesen Absatz. Die Anwendung kann dann Confirm aufrufen und an TopBoundary übergeben. Wenn der Benutzer neue Freihandeingaben oberhalb des Absatzes hinzufügt, nimmt der InkAnalyzer die neue Freihandeingabe nicht in den bestätigten ParagraphNode auf, wenn der InkAnalyzer die Analyse der neuen Eingabe durchführt.

Hinweis

Wenn Sie TopBoundary verwenden, kann der ContextNode weiterhin in andere Richtungen erweitert werden. Das Löschen von Strichen kann bewirken, dass die obere Grenze des ContextNode nach unten verschoben wird. Durch eine Übersetzung des ContextNode kann sich die Position ändern, es können jedoch keine zusätzlichen Freihandeingaben mit der neuen Position zusammengeführt werden.

Diese TopBoundary ist nur auf Absatzknoten anwendbar.

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 mit dem Namen 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

System.Windows.Ink-Namespace

ContextNode.Confirm

ContextNodeIsNodeTypeAndPropertiesConfirmed()