UIElement.PointerEntered 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 un puntatore entra nell'area hit test di questo elemento.
public:
virtual event PointerEventHandler ^ PointerEntered;
// Register
event_token PointerEntered(PointerEventHandler const& handler) const;
// Revoke with event_token
void PointerEntered(event_token const* cookie) const;
// Revoke with event_revoker
UIElement::PointerEntered_revoker PointerEntered(auto_revoke_t, PointerEventHandler const& handler) const;
public event PointerEventHandler PointerEntered;
function onPointerEntered(eventArgs) { /* Your code */ }
uIElement.addEventListener("pointerentered", onPointerEntered);
uIElement.removeEventListener("pointerentered", onPointerEntered);
- or -
uIElement.onpointerentered = onPointerEntered;
Public Custom Event PointerEntered As PointerEventHandler
<uiElement PointerEntered="eventhandler"/>
Tipo evento
Commenti
L'evento PointerEntered viene generato in risposta a un puntatore che si sposta nell'area di delimitazione dell'elemento. Le interazioni tramite tocco, mouse e penna/stilo vengono ricevute, elaborate e gestite come input del puntatore nell'app. Uno di questi dispositivi e le relative interazioni possono produrre un PointerEntered evento. Per altre info, vedi Gestire l'input del puntatore e anche le altre osservazioni in questo argomento.
PointerEntered è un evento indirizzato. Per altre info sul concetto di evento indirizzato, vedi Panoramica degli eventi e degli eventi indirizzati.
Usare un gestore basato su PointerEventHandler per gestire questo evento.
Per le azioni di tocco e anche per gli eventi specifici dell'interazione o di manipolazione che sono conseguenze di un'azione di tocco, un elemento deve essere visibile al test di colpire per poter essere la sorgente dell'evento e generare l'evento associato all'azione. UIElement.Visibility deve essere Visibile. Anche altre proprietà dei tipi derivati influiscono sulla visibilità dei hit test. Per altre informazioni, vedi Panoramica degli eventi e degli eventi indirizzati.
PointerEntered 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.
Controlli Windows Runtime specifici possono avere una gestione basata su classi per l'evento di input PointerEntered. In tal caso, il controllo ha probabilmente un override per il metodo OnPointerEntered. In genere l'evento non viene contrassegnato come gestito dal gestore classi, quindi l'evento PointerEntered può comunque essere gestito dal codice utente per il controllo nell'interfaccia utente. Per altre info sul funzionamento della gestione basata su classi per gli eventi, vedi Panoramica degli eventi e degli eventi indirizzati.
Puntatore Immesso per l'input penna/penna/stilo
Un dispositivo di input del mouse ha un cursore sullo schermo visibile ogni volta che il mouse si sposta, anche se non viene premuto alcun pulsante del mouse al momento. Un PointerEntered evento precederà il primo PointerMoved evento generato dall'elemento . Un comportamento simile è disponibile per l'input penna del dispositivo, in cui i dispositivi di input possono rilevare che lo stilo sta passando il puntatore del mouse sopra la superficie del dispositivo di input (IsInRange) ma non toccandola. L'input del dispositivo mouse e penna genererà PointerEntered quindi eventi in casi leggermente diversi rispetto agli eventi di tocco. Per altre info, vedi Interazioni del mouse.
Puntatore Immesso per l'input tocco
Un punto di tocco è rilevabile solo se un dito tocca la superficie. Ogni volta che un'azione tocco genera un evento PointerPressed , tale evento è immediatamente preceduto da un PointerEntered evento, con tutti i dati dell'evento che corrispondono alle stesse informazioni per i due eventi (stesso ID puntatore, stessa posizione e così via). In altre parole, il puntatore viene considerato l'immissione dell'elemento nel momento e la posizione in cui l'elemento viene toccato da un punto di tocco.
In alternativa, un punto di tocco genererà PointerEntered se un puntatore rimane in contatto costante con la superficie mentre si sposta e immette i limiti di hit testing di un elemento. Per questi tipi di azioni di tocco è anche possibile che l'azione possa essere elaborata come manipolazione o come movimento, anziché come evento puntatore. Per altre info, vedi Gestire l'input del puntatore.
Comportamento dell'evento indirizzato per PointerEntered
PointerEntered è un evento indirizzato. Per altre info sul concetto di evento indirizzato, vedi Panoramica degli eventi e degli eventi indirizzati. Puoi definire più PointerEntered eventi per gli elementi in un'interfaccia utente XAML, inclusi gli elementi che si trovano in una relazione padre-figlio. In una composizione tipica dell'interfaccia utente, gli elementi figlio si trovano in un punto all'interno dei limiti di un elemento padre, quindi l'evento PointerEntered si verificherà per il padre quando il puntatore si sposta nell'elemento padre e quindi per l'elemento figlio quando il puntatore si sposta lì. L'evento PointerEntered in genere non viene visualizzato all'elemento padre quando l'elemento figlio lo genera, perché concettualmente il puntatore si trova già all'interno dei limiti padre e il sistema di input instrada l'occorrenza dell'evento PointerEntered anche all'elemento padre. In genere non si vuole PointerEntered che gli eventi vengano instradati comunque, è necessario elaborarli solo dal mittente. È possibile impedire in modo esplicito il routing degli eventi impostando Handled su true nel gestore.
In rari casi è possibile visualizzare una PointerEntered bolla di evento nell'elemento padre. Ad esempio, se è stato usato un Oggetto RenderTransform per compensare un elemento figlio al di fuori dei limiti del relativo padre, l'evento si sposta all'elemento padre quando viene immesso l'elemento figlio e fornisce le informazioni sull'evento come indicato dal modo in cui l'elemento figlio ha generato l'evento.
Acquisizione puntatore
Se un altro elemento ha acquisito il puntatore, PointerEntered non verrà generato anche se il puntatore acquisito entra nei limiti di un elemento. Tuttavia, se l'acquisizione del puntatore viene rilasciata mentre il puntatore è posizionato sull'elemento, PointerEntered verrà generato, anche se il puntatore potrebbe rimanere fermo in questo caso. Il valore di GetCurrentPoint dai dati dell'evento potrebbe essere un punto al centro di un elemento anziché un punto lungo i bordi, perché il puntatore era già posizionato sull'elemento quando è stata rilasciata l'acquisizione. Per altre informazioni sull'acquisizione del puntatore, vedi CapturePointer o Interazioni del mouse.
Stati di visualizzazione PointerOver per i controlli
I controlli con modelli di controllo possono applicare stati di visualizzazione attivi solo quando un puntatore si trova sui limiti del controllo. Non è sempre necessario gestire PointerEntered o puntatoreExited per ottenere o modificare questo comportamento. Potrebbe essere necessario rielaborare il controllo. Se si deriva da un controllo esistente che dispone già della gestione di input di basso livello che richiama gli stati di visualizzazione, è necessario fornire uno stato di visualizzazione denominato "PointerOver" in " CommonStates" VisualStateGroup e la logica di controllo predefinita caricherà tale stato visivo ogni volta che un puntatore si trova sul controllo. Uno stato di visualizzazione per il puntatore è spesso presente nei controlli che possono essere richiamati o selezionati, ad esempio Button o ListViewItem. Se si deriva da una classe di base come Control che non dispone di una gestione degli eventi di input predefinita che richiama gli stati di visualizzazione, potrebbe essere necessario eseguire l'override di OnPointerEntered e OnPointerExited per ottenere questo comportamento.