Metodo ContextNode.Confirm
Aggiornamento: novembre 2007
Imposta il tipo di conferma che limita ciò che InkAnalyzer può modificare relativamente al nodo.
Spazio dei nomi: Microsoft.Ink
Assembly: Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.dll)
Sintassi
'Dichiarazione
Public Sub Confirm ( _
type As ConfirmationType _
)
'Utilizzo
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
)
Parametri
- type
Tipo: Microsoft.Ink.ConfirmationType
ConfirmationType applicato al nodo.
Note
Utilizzare Confirm per consentire all'utente finale di confermare che InkAnalyzer ha analizzato correttamente i tratti. Una volta chiamato Confirm, InkAnalyzer non modificherà gli oggetti ContextNode per tali tratti durante le analisi successive.
Ad esempio, se l'utente finale scrive la parola "to" e l'applicazione chiama Analyze, l'oggetto InkAnalyzer creerà un nodo InkWord con il valore di "to". Se l'utente finale aggiunge quindi "me" dopo "to" come una sola parola e l'applicazione effettua un'altra chiamata a Analyze, è probabile che InkAnalyzer crei un nodo InkWord con il valore "tome". Tuttavia, se dopo la prima chiamata a Analyze, l'applicazione chiama Confirm nel nodo InkWord per "to" con il valore NodeTypeAndProperties, si verifica un comportamento diverso. Quando l'utente finale aggiunge "me" e l'applicazione effettua un'altra chiamata a Analyze, il nodo "to" non viene modificato. InkAnalyzer riconoscerebbe due nodi InkWord per "to me".
È possibile confermare solo gli oggetti ContextNode di tipo InkWord e InkDrawing. Se si tenta di chiamare Confirm in un nodo che non è un nodo foglia, viene generata un'eccezione InvalidOperationException.
Se si chiama InkAnalyzer.RemoveStroke, l'oggetto ContextNode viene automaticamente impostato su non confermato se il tratto da rimuovere è correlato a un oggetto ContextNode confermato.
SetStrokes, InkAnalyzer.SetStrokesType e InkAnalyzer.SetStrokeType generano un'eccezione InvalidOperationException se l'oggetto ContextNode è già confermato. ReparentStrokes genera l'eccezione se il nodo di origine o di destinazione è confermato.
Esempi
Nell'esempio riportato di seguito viene utilizzato un gestore eventi per l'evento Control.MouseUp in un Panel, theNotesPanel che raccoglie l'input penna tramite un InkCollector, theInkCollector. L'applicazione dispone di un Boolean, confirmMode impostato da un MenuItem, confirmMenuItem. Quando in modalità di "conferma", l'utente fa clic su una parola per confermarla (o per disattivare la conferma se il nodo è già confermato). Nell'esempio viene convertito l'evento di spostamento verso l'alto in coordinate di input penna e vengono utilizzati HitTest e FindNodesOfType per trovare i nodi appropriati. Una volta trovati i nodi, viene chiamato Confirm per attivare o disattivare la conferma. Infine, l'applicazione esce dalla modalità di "conferma".
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;
}
}
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