UIElement.Holding 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 si verifica un'interazione di blocco non gestita sull'area hit test di questo elemento.
public:
virtual event HoldingEventHandler ^ Holding;
// Register
event_token Holding(HoldingEventHandler const& handler) const;
// Revoke with event_token
void Holding(event_token const* cookie) const;
// Revoke with event_revoker
UIElement::Holding_revoker Holding(auto_revoke_t, HoldingEventHandler const& handler) const;
public event HoldingEventHandler Holding;
function onHolding(eventArgs) { /* Your code */ }
uIElement.addEventListener("holding", onHolding);
uIElement.removeEventListener("holding", onHolding);
- or -
uIElement.onholding = onHolding;
Public Custom Event Holding As HoldingEventHandler
<uiElement Holding="eventhandler"/>
Tipo evento
Commenti
Il tocco può produrre un'azione Di controllo , ma i dispositivi del mouse in genere non possono. Per altre info, vedi Gestire l'input del puntatore.
Gli eventi Tapped, DoubleTapped e RightTapped si verificano solo dopo la rimozione del punto di tocco. Ma l'evento Holding iniziale si verifica mentre il punto di tocco è ancora in contatto. L'evento si verifica se il punto di tocco rimane approssimativamente nella stessa posizione pointerpoint per un periodo di tempo. La tempistica esatta di ciò che il sistema interpreta come azione di controllo è modificabile dagli utenti tramite le impostazioni di sistema.
La conservazione è destinata all'interfaccia utente informativa, ma per le interazioni come la visualizzazione di un menu di scelta rapida è consigliabile usare RightTapped . È possibile gestire Holding per visualizzare prima un suggerimento che verrà visualizzato un menu, ma per visualizzare il menu stesso, usare un gestore RightTapped . Per altre informazioni su come usare un'interazione di blocco nella progettazione dell'app, vedi Linee guida per l'interazione con interazione tramite tocco o esperienza utente per interazioni utente personalizzate.
Gli eventi di mantenimento si verificano in genere in coppie. Quando l'azione viene interpretata per la prima volta come azione di blocco in base a nessun movimento per un periodo di tempo, holding viene attivato, con il valore HoldingStateavviato nei dati dell'evento HoldingRoutedEventArgs . Al termine dell'azione Di blocco , viene generato un altro evento Holding, questa volta con HoldingStatecompletato oCanceled.
L'azione Hold termina con HoldingState come Completato se l'utente non sposta il puntatore durante lo stato di blocco e rilascia i punti puntatore che hanno avviato l'azione. In questo caso, RightTapped viene generato subito dopo il secondo evento Holding.
L'azione Di blocco termina con HoldingState come Annullata se l'utente sposta i puntatori che hanno avviato l'azione o anche per situazioni non comuni, ad esempio la modifica dello stato di hit test sull'elemento durante l'azione o l'acquisizione di un altro puntatore. Se l'azione Di blocco termina con HoldingState come Annullata, RightTapped non verrà attivato.
Un evento Holding rappresenta un movimento, mentre un evento PointerPressed è un evento di input di livello inferiore. La conservazione e l'evento PointerPressed possono essere attivati come risultato di un'interazione con un singolo utente. Anche se un controllo gestisce già gli eventi del puntatore nella logica di controllo o gestisce le manipolazioni, ciò non impedisce l'attivazione di Holding.
Un evento Holding è potenzialmente il risultato di più di un puntatore. Per gli eventi di movimento di livello superiore, ad esempio Holding, non si ha più accesso immediato ai dettagli di PointerPoint , ad esempio singoli valori PointerId o singole coordinate. Si ha accesso al tipo di dispositivo (PointerDeviceType) e per le coordinate è possibile chiamare GetPosition, che fornisce una media delle coordinate per un blocco da più di un punto di puntatore.
Holding è un evento indirizzato. Inoltre, un elemento deve avere IsHoldingEnabled essere true per essere un'origine evento Holding (true è l'impostazione predefinita). È possibile gestire Holding sugli elementi padre anche se IsHoldingEnabled è false nell'elemento padre, se l'evento si trova in un elemento padre da un elemento figlio dell'origine evento in cui IsHoldingEnabled è false. Per altre info sul concetto di evento indirizzato, vedi Panoramica degli eventi e degli eventi indirizzati.
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.
Holding supporta la possibilità di associare 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 Holding. In tal caso, il controllo ha probabilmente un override per il metodo OnHolding. Per altre info sul funzionamento della gestione basata su classi per gli eventi, vedi Panoramica degli eventi e degli eventi indirizzati.
Tapped e Holding si escludono a vicenda. Se l'azione supera la soglia di tempo da considerare un'azione di blocco , non viene considerata anche un'azione Tap .
Ogni volta che Holding viene attivato inizialmente, purché l'elemento supporti gli eventi di manipolazione tramite un valore ManipulationMode non predefinito, ManipulationStarting viene attivato troppo. Se il punto del puntatore rimane in un'unica posizione abbastanza lungo per il rilevamento di Holding, ma successivamente l'utente sposta i punti del puntatore associati all'azione Di blocco senza rilasciarli (portando a un altro evento Holding con HoldingState come Annullato), è possibile attivare anche altri eventi di manipolazione come ManipulationStarted e ManipulationDelta .
Tenere premuto il mouse e l'input penna/stilo
L'input del mouse non produce eventi Holding per impostazione predefinita, indipendentemente dal tempo per cui si tiene premuto un pulsante del mouse o da quale pulsante viene mantenuto. Tuttavia, i dispositivi mouse e alcuni dispositivi penna possono attivare RightTapped quando un pulsante destro del mouse o un equivalente viene premuto e rilasciato.
Note
È possibile considerare le azioni del mouse come azioni di blocco se si usa il proprio GestureRecognizer e si specifica HoldWithMouse nelle impostazioni.