Delegato InkEditGestureEventHandler
Aggiornamento: novembre 2007
Rappresenta il metodo che gestisce l'evento Gesture di un controllo InkEdit.
Spazio dei nomi: Microsoft.Ink
Assembly: Microsoft.Ink (in Microsoft.Ink.dll)
Sintassi
'Dichiarazione
Public Delegate Sub InkEditGestureEventHandler ( _
sender As Object, _
e As InkEditGestureEventArgs _
)
'Utilizzo
Dim instance As New InkEditGestureEventHandler(AddressOf HandlerMethod)
public delegate void InkEditGestureEventHandler(
Object sender,
InkEditGestureEventArgs e
)
public delegate void InkEditGestureEventHandler(
Object^ sender,
InkEditGestureEventArgs^ e
)
/** @delegate */
public delegate void InkEditGestureEventHandler(
Object sender,
InkEditGestureEventArgs e
)
JScript non supporta i delegati.
Parametri
- sender
Tipo: System.Object
Controllo InkEdit di origine di questo evento.
- e
Tipo: Microsoft.Ink.InkEditGestureEventArgs
Oggetto InkEditGestureEventArgs che contiene i dati dell'evento.
Note
Un movimento dell'applicazione è un movimento supportato all'interno dell'applicazione.
Affinché questo evento si verifichi, il controllo InkEdit deve esprimere un interesse per un insieme di movimenti dell'applicazione. Per impostare l'interesse del controllo InkEdit per un insieme di movimenti, chiamare il metodo SetGestureStatus del controllo InkEdit.
Per un elenco di movimenti specifici dell'applicazione, vedere il tipo di enumerazione ApplicationGesture. Per ulteriori informazioni sui movimenti dell'applicazione, vedere Using Gestures e Command Input on the Tablet PC.
Quando si crea un delegato InkEditGestureEventHandler, viene identificato il metodo che gestisce l'evento. Per associare l'evento al gestore in uso, aggiungere all'evento un'istanza del delegato. Il gestore eventi viene chiamato ogni volta che si verifica l'evento, a meno che non si rimuova il delegato.
Nel controllo InkEdit, viene generato un evento Gesture solo se il movimento è il primo tratto dall'ultima chiamata al metodo Recognize o dall'ultima generazione del timeout del riconoscimento.
Se l'evento Gesture viene annullato, viene generato l'evento Stroke per gli oggetti Stroke che hanno generato l'evento Gesture.
Il controllo InkEdit non riconosce movimenti a più tratti.
Il controllo InkEdit dispone di interesse predefinito e delle relative azioni per i movimenti seguenti:
Movimento |
Azione |
---|---|
In basso a sinistra, lungo il lato in basso a sinistra |
Invio |
Destra |
Spazio |
Sinistra |
Backspace |
In altro a destra, lungo il lato in alto a destra |
Tab |
Per modificare l'azione predefinita per un movimento:
Aggiungere i gestori eventi per gli eventi Gesture e Stroke.
Nel gestore eventi Gesture, annullare l'evento Gesture per il movimento ed eseguire l'azione alternativa per il movimento.
Nel delegato InkEditStrokeEventHandler, annullare l'evento Stroke per l'oggetto Stroke che ha generato l'evento Gesture annullato.
Esempi
In questo esempio viene illustrato come sottoscrivere l'evento Gesture e l'evento Stroke per aumentare la funzionalità di un oggetto ApplicationGesture.
Quando viene generato l'evento Gesture, vengono esaminati il movimento e lo stato corrente del controllo InkEdit. Se necessario, il comportamento del movimento viene modificato e l'evento viene annullato.
Private Sub mInkEdit_Gesture(ByVal sender As Object, ByVal e As InkEditGestureEventArgs)
' There might be more than one gesture passed in InkEditGestureEventArgs
' The gestures are arranged in order of confidence from most to least
' This event handler is only concerned with the first (most confident) gesture
' and only if the gesture is ApplicationGesture.Left with strong confidence
Dim G As Gesture = e.Gestures(0)
If (ApplicationGesture.Left = G.Id And RecognitionConfidence.Strong = G.Confidence) Then
Dim pInkEdit As InkEdit = DirectCast(sender, InkEdit)
' by default, ApplicationGesture.Left maps to Backspace
' If the insertion point is at the beginning of the text
' and there is no text selected, then Backspace does not do anything.
' In this case, we will alter the gesture to map to Delete instead
If (0 = pInkEdit.SelectionStart And 0 = pInkEdit.SelectionLength And pInkEdit.Text.Length > 0) Then
' take out the first character of the string
pInkEdit.Text = pInkEdit.Text.Remove(0, 1)
' save the stroke ID in a class level var for use in the Stroke event
Me.mStrokeID = e.Strokes(0).Id
' cancel the gesture so it won't perform the default action
e.Cancel = True
End If
End If
End Sub
private void mInkEdit_Gesture(object sender, InkEditGestureEventArgs e)
{
// There might be more than one gesture passed in InkEditGestureEventArgs
// The gestures are arranged in order of confidence from most to least
// This event handler is only concerned with the first (most confident) gesture
// and only if the gesture is ApplicationGesture.Left with strong confidence
Gesture G = e.Gestures[0];
if (ApplicationGesture.Left == G.Id && RecognitionConfidence.Strong == G.Confidence)
{
InkEdit pInkEdit = (InkEdit)sender;
// by default, ApplicationGesture.Left maps to Backspace
// If the insertion point is at the beginning of the text
// and there is no text selected, then Backspace does not do anything.
// In this case, we will alter the gesture to map to Delete instead
if (0 == pInkEdit.SelectionStart && 0 == pInkEdit.SelectionLength && pInkEdit.Text.Length > 0)
{
// take out the first character of the string
pInkEdit.Text = pInkEdit.Text.Remove(0, 1);
// save the stroke ID in a class level var for use in the Stroke event
this.mStrokeID = e.Strokes[0].Id;
// cancel the gesture so it won't perform the default action
e.Cancel = true;
}
}
}
Quando viene generato l'evento Stroke, l'evento viene annullato se il tratto è quello utilizzato per generare il movimento il cui comportamento è stato modificato nell'evento Gesture. Impedisce l'esecuzione del rendering del tratto.
Private Sub mInkEdit_Stroke(ByVal sender As Object, ByVal e As InkEditStrokeEventArgs)
e.Cancel = (e.Stroke.Id = Me.mStrokeID)
End Sub
private void mInkEdit_Stroke(object sender, InkEditStrokeEventArgs e)
{
e.Cancel = (e.Stroke.Id == this.mStrokeID);
}
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