Metodo ContextNode.Confirm
Aggiornamento: novembre 2007
Imposta il tipo di conferma che limita ciò che InkAnalyzer può modificare in relazione al nodo.
Spazio dei nomi: System.Windows.Ink
Assembly: IAWinFX (in IAWinFX.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: System.Windows.Ink.ConfirmationType
Oggetto ConfirmationType applicato al nodo.
Note
Una volta chiamato Confirm, l'oggetto InkAnalyzer non modificherà gli oggetti ContextNode associati ai tratti quando InkAnalyzer esegue l'analisi successiva.
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 "to". Se l'utente finale aggiunge quindi "me" dopo "to" come un'unica 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 con il valore "to" NodeTypeAndProperties, l'aggiunta di "me" non modifica il nodo. 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 InkAnalyzerRemoveStroke(Int32) e il tratto da rimuovere è correlato a un oggetto ContextNode confermato, l'oggetto ContextNode viene automaticamente impostato su non confermato.
SetStrokes(array<Int32[]) e ReparentStroke(Int32, ContextNode) generano un'eccezione InvalidOperationException se l'oggetto ContextNode è già confermato. ReparentStroke(Int32, ContextNode) genera l'eccezione se il nodo di origine o di destinazione è confermato.
Esempi
L'esempio seguente consente all'utente di indicare quali tratti sono stati analizzati correttamente. In questo esempio viene definito un gestore per l'evento PreviewMouseUp in un oggetto InkCanvas, theInkCanvas. Quando l'oggetto CheckBox, confirmMode, viene selezionato, l'utente fa clic su una parola per confermarla (o per disattivare la conferma se il nodo è già confermato). Nell'esempio vengono utilizzati StrokeCollection.HitTest(Point) e FindNodesOfType per trovare i nodi appropriati. Una volta trovati i nodi, viene chiamato Confirm per attivare o disattivare la conferma. Infine, viene ricompilato TreeView per mostrare quali nodi sono stati confermati e viene gestito l'evento PreviewMouseUp.
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;
}
}
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
Vedere anche
Riferimenti
Spazio dei nomi System.Windows.Ink
ContextNodeIsNodeTypeAndPropertiesConfirmed()