UIElement.PointerPressed Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica quando il dispositivo puntatore avvia un'azione Press all'interno di questo elemento.
public:
virtual event PointerEventHandler ^ PointerPressed;
// Register
event_token PointerPressed(PointerEventHandler const& handler) const;
// Revoke with event_token
void PointerPressed(event_token const* cookie) const;
// Revoke with event_revoker
UIElement::PointerPressed_revoker PointerPressed(auto_revoke_t, PointerEventHandler const& handler) const;
public event PointerEventHandler PointerPressed;
function onPointerPressed(eventArgs) { /* Your code */ }
uIElement.addEventListener("pointerpressed", onPointerPressed);
uIElement.removeEventListener("pointerpressed", onPointerPressed);
- or -
uIElement.onpointerpressed = onPointerPressed;
Public Custom Event PointerPressed As PointerEventHandler
<uiElement PointerPressed="eventhandler"/>
Tipo evento
Commenti
Le interazioni tramite tocco, mouse e penna/stilo vengono ricevute, elaborate e gestite come input del puntatore in un'app. Una di queste interazioni può produrre un PointerPressed
evento. Per altre info, vedi Gestire l'input del puntatore. Gli eventi puntatore sono destinati a scenari in cui si è interessati a più puntatori e alle relative relazioni o quando si esaminano specifiche di ogni puntatore, ad esempio la posizione esatta delle coordinate. In caso contrario, è possibile gestire gli eventi di movimento, ad esempio Tapped.
Usare un gestore basato su PointerEventHandler per gestire questo evento.
L'input del mouse è associato a un singolo puntatore assegnato quando l'input in questione è stato rilevato. Facendo clic su un pulsante del mouse (sinistra, rotellina o destra) viene creata un'associazione secondaria tra il puntatore e il pulsante tramite l'evento PointerPressed
. L’evento PointerReleased viene generato solo quando lo stesso pulsante del mouse viene rilasciato. Finché questo evento non è completato, nessun altro pulsante può essere associato al puntatore. A causa di questa associazione esclusiva, altri clic su un pulsante del mouse vengono instradati attraverso l’evento PointerMoved. È possibile testare lo stato del pulsante del mouse durante la gestione di questo evento, come illustrato nell'esempio seguente.
Gli eventi del puntatore da un dispositivo di input del mouse hanno in genere lo stesso PointerId nei dettagli dell'evento per la durata dell'app.
PointerPressed
è un evento indirizzato. Per altre info sul concetto di evento indirizzato, vedi Panoramica degli eventi e degli eventi indirizzati.
Per le azioni tocco e per gli eventi di modifica o specifici dell'interazione che sono la conseguenza di un'azione tocco, un elemento deve essere visibile tramite hit testing per poter essere l'origine dell'evento e attivare l'evento associato all'azione. UIElement.Visibility deve essere Visible. Altre proprietà dei tipi derivati influiscono anche sulla visibilità degli hit test. Per altre informazioni, vedi Panoramica degli eventi e degli eventi indirizzati.
PointerPressed
supporta la possibilità di collegare gestori eventi alla route che verrà richiamata anche se i dati dell'evento per l'evento sono contrassegnati come Handled. Vedere AddHandler.
Specifici controlli Windows Runtime possono avere una gestione basata su classi per l'evento PointerPressed
di input. In tal caso, è probabile che il controllo abbia un override per il metodo OnPointerPressed. In genere l'evento viene contrassegnato come gestito dal gestore della classe e l'evento non viene generato per la PointerPressed
gestione da parte di gestori di codice utente su tale controllo. ButtonBase, ad esempio, dispone della gestione delle classi che gestisce PointerPressed
e attiva invece Click. Per altre info sul funzionamento della gestione basata su classi per gli eventi, vedi Panoramica degli eventi e degli eventi indirizzati.
I controlli possono anche avere un'animazione di personalità PointerDownThemeAnimation che viene eseguita indipendentemente dall'evento.
Acquisizione puntatore
PointerPressed
viene talvolta usato come evento di avvio durante l'acquisizione del puntatore, in modo che altri eventi correlati al puntatore vengano tutti acquisiti da un particolare elemento, purché il puntatore rimanga inattivo. Per acquisire un puntatore, chiamare il metodo CapturePointer su un elemento dell'interfaccia utente specifico che deve mantenere l'acquisizione. Questa operazione viene in genere eseguita all'interno di un PointerPressed
gestore eventi e si chiama CapturePointer
sull'oggetto dell'evento sender
. Per altre info su come acquisire un puntatore e sul motivo per cui si potrebbe voler eseguire questa operazione, vedere CapturePointer
.
Eventi pointerPressed ed eventi di movimento o eventi di manipolazione
L'azione dell'utente che genera inizialmente un PointerPressed
evento può determinare l'evento Holding che rappresenta un movimento hold , a meno che il dispositivo di input non sia un mouse. Se l'elemento in cui PointerPressed
si verifica ha un valore ManipulationMode non predefinito, l'azione potrebbe comportare anche vari eventi di manipolazione, ad esempio ManipulationStarted. Per altre info, vedi la sezione "Uso degli eventi di manipolazione" in Gestire l'input del puntatore.
Quando PointerPressed
viene attivato, gli eventi di movimento, ad esempio Tapped, non vengono ancora attivati perché gli eventi di movimento diversi da Holding sono in attesa del rilascio del puntatore prima di generare un evento.
Come regola di progettazione generale per le interazioni utente dell'app, devi esaminare se sono presenti eventi specifici del controllo che puoi gestire per un'interazione o gli eventi di movimento appropriati. Ad esempio, se il controllo è un controllo Button, tale controllo ha un evento Click specifico destinato a quando l'utente richiama l'azione del pulsante. In alternativa, se l'elemento non è un pulsante, ma si gestiscono gli eventi e per l'azione primaria di un elemento, si gestirà Tapped.
Gli eventi movimento possono essere disabilitati in modo specifico su singoli elementi impostando proprietà come IsTapEnabled. Se si elaborano modifiche, è possibile disabilitare gli eventi di movimento, ma in genere non è necessario disabilitare gli eventi di movimento se si gestiscono gli eventi del puntatore. Gli eventi puntatore non possono essere disabilitati in modo specifico, ma è possibile scegliere di non gestirli.
PointerPressed e PointerReleased
Altri eventi anziché PointerReleased possono essere attivati alla fine dell'azione, ad esempio PointerCanceled o PointerCaptureLost. Non fare affidamento su PointerPressed
eventi e PointerReleased
che si verificano sempre in coppie. Per funzionare correttamente, l'app deve restare in ascolto e gestire tutti gli eventi che rappresentano le probabili conclusioni dell'azione Stampa . Alcuni dei motivi per cui si potrebbe non ottenere un'occorrenza PointerReleased
sono:
- Differenze nel modo in cui l'hardware specifico gestisce le azioni tocco e Premere azioni
- Acquisizione di puntatori a livello di codice da un puntatore diverso
- Azioni utente che modificano la relazione dell'area di visualizzazione, ad esempio la modifica delle impostazioni di risoluzione o monitoraggio
- Interazioni di input, ad esempio uno stilo che tocca la stessa superficie di un'azione tocco precedente