Evento InkEdit.Gesture
Aggiornamento: novembre 2007
Si verifica quando viene riconosciuto un movimento dell'applicazione.
Spazio dei nomi: Microsoft.Ink
Assembly: Microsoft.Ink (in Microsoft.Ink.dll)
Sintassi
'Dichiarazione
Public Event Gesture As InkEditGestureEventHandler
'Utilizzo
Dim instance As InkEdit
Dim handler As InkEditGestureEventHandler
AddHandler instance.Gesture, handler
public event InkEditGestureEventHandler Gesture
public:
event InkEditGestureEventHandler^ Gesture {
void add (InkEditGestureEventHandler^ value);
void remove (InkEditGestureEventHandler^ value);
}
/** @event */
public void add_Gesture (InkEditGestureEventHandler value)
/** @event */
public void remove_Gesture (InkEditGestureEventHandler value)
JScript non supporta gli eventi.
Note
Il gestore eventi riceve un argomento di tipo InkEditGestureEventArgs contenente i dati relativi a questo evento.
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.
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 InkEdit.SetGestureStatus. Il controllo InkEdit non riconosce più movimenti del tratto.
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.
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 |
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.
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 gestore eventi Stroke, 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