ContextNode.Confirm-Methode
Legt den Bestätigungstyp fest, der Einschränkungen darüber definiert, was der InkAnalyzer am Knoten ändern kann.
Namespace: Microsoft.Ink
Assembly: Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.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
- type
Typ: Microsoft.Ink.ConfirmationType
Der ConfirmationType, der auf den Knoten angewendet wird.
Hinweise
Verwenden Sie Confirm, damit der Endbenutzer die korrekte Analyse der Striche durch den InkAnalyzer bestätigen kann. Nach dem Aufruf von Confirm nimmt der InkAnalyzer bei einer späteren Analyse keine Änderungen an den ContextNode-Objekten für diese Striche vor.
Wenn der Endbenutzer beispielsweise das Wort "to" schreibt und Ihre Anwendung 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, würde der InkAnalyzer wahrscheinlich einen InkWord-Knoten mit dem Wert "tome" erstellen. Wenn die Anwendung nach dem ersten Aufruf von Analyze jedoch Confirm am InkWord-Knoten für "to" mit dem Wert NodeTypeAndProperties aufruft, tritt ein anderes Verhalten auf. Wenn der Endbenutzer "me" hinzufügt und die Anwendung Analyze erneut aufruft, wird der "to"-Knoten nicht geändert. Der InkAnalyzer würde zwei InkWord-Knoten für "to me" erkennen.
Sie können nur ContextNode-Objekte vom Typ InkWord und vom Typ InkDrawing bestätigen. Wenn Sie versuchen, Confirm an einem Knoten aufzurufen, der kein Endknoten ist, wird eine InvalidOperationException ausgelöst.
Wenn Sie InkAnalyzer.RemoveStroke aufrufen, wird das ContextNode-Objekt automatisch auf unbestätigt festgelegt, wenn sich der gelöschte Strich auf ein bestätigtes ContextNode-Objekt bezieht.
SetStrokes, InkAnalyzer.SetStrokesType und InkAnalyzer.SetStrokeType lösen eine InvalidOperationException aus, wenn das ContextNode-Objekt bereits bestätigt ist. ReparentStrokes löst die Ausnahme aus, wenn entweder der Quell- oder der Zielknoten bestätigt ist.
Beispiele
Das folgende Beispiel ist ein Ereignishandler für das Control.MouseUp-Ereignis an einem Panel mit dem Namen theNotesPanel, das Freihandeingaben über einen InkCollector mit dem Namen theInkCollector erfasst. Die Anwendung verfügt über den Boolean-Wert confirmMode, der von MenuItem mit dem Namen confirmMenuItem festgelegt wird. Im "Bestätigungsmodus" 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 wird das beim Loslassen der Maustaste ausgelöste Ereignis in Freihandkoordinaten konvertiert. Außerdem werden HitTest und FindNodesOfType verwendet, um die entsprechenden Knoten zu suchen. Nachdem die Knoten gefunden wurden, wird Confirm aufgerufen, um die Bestätigung umzuschalten. Schließlich wechselt die Anwendung aus dem "Bestätigungsmodus".
Private Sub theNotesPanel_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles theNotesPanel.MouseUp
If Me.confirmMode = True Then
' Translate coordinates into ink dimensions
Dim hitPoint As New Point(e.X, e.Y)
Dim panelGraphics As Graphics = Me.theNotesPanel.CreateGraphics()
Me.theInkCollector.Renderer.PixelToInkSpace(panelGraphics, hitPoint)
panelGraphics.Dispose()
' Find the strokes that the user selected
Dim selectedStrokes As Strokes = Me.theInkCollector.Ink.HitTest(hitPoint, 10)
' Find the ink word nodes that correspond to those strokes
Dim selectedNodes As ContextNodeCollection = _
Me.theInkAnalyzer.FindNodesOfType(Microsoft.Ink.ContextNodeType.InkWord, _
selectedStrokes)
' Toggle the confirmation type on these nodes
Dim selectedNode As ContextNode
For Each selectedNode In selectedNodes
If selectedNode.IsConfirmed(ConfirmationType.NodeTypeAndProperties) = True Then
selectedNode.Confirm(Microsoft.Ink.ConfirmationType.None)
Else
selectedNode.Confirm(Microsoft.Ink.ConfirmationType.NodeTypeAndProperties)
End If
Next selectedNode
' No longer in "confirm" mode
Me.confirmMode = False
Me.ConfirmMenuItem.Checked = False
Me.theInkCollector.Enabled = True
End If
End Sub
private void theNotesPanel_MouseUp(object sender, MouseEventArgs e)
{
if (this.confirmMode)
{
// Translate coordinates into ink dimensions
Point hitPoint = new Point(e.X, e.Y);
Graphics panelGraphics = this.theNotesPanel.CreateGraphics();
this.theInkCollector.Renderer.PixelToInkSpace(panelGraphics, ref hitPoint);
panelGraphics.Dispose();
// Find the strokes that the user selected
Strokes selectedStrokes = this.theInkCollector.Ink.HitTest(hitPoint, 10);
// Find the ink word nodes that correspond to those strokes
ContextNodeCollection selectedNodes =
this.theInkAnalyzer.FindNodesOfType(Microsoft.Ink.ContextNodeType.InkWord,
selectedStrokes);
// Toggle the confirmation type on these nodes
foreach (ContextNode selectedNode in selectedNodes)
{
if (selectedNode.IsConfirmed(ConfirmationType.NodeTypeAndProperties))
{
selectedNode.Confirm(Microsoft.Ink.ConfirmationType.None);
}
else
{
selectedNode.Confirm(Microsoft.Ink.ConfirmationType.NodeTypeAndProperties);
}
}
// No longer in "confirm" mode
this.confirmMode = false;
this.confirmMenuItem.Checked = false;
this.theInkCollector.Enabled = 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