Condividi tramite


UIElement.Holding Evento

Definizione

Si verifica quando si verifica un'interazione di blocco altrimenti non gestita sull'area di 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 conservazione , ma i dispositivi del mouse in genere non possono. Per altre informazioni, vedere Gestire l'input del puntatore.

Gli eventi Tapped, DoubleTapped e RightTapped si verificano solo dopo la rimozione del punto di tocco. Tuttavia, l'evento di 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 un'azione di controllo è regolabile dagli utenti tramite le impostazioni di sistema.

La conservazione è destinata all'interfaccia utente informativo, ma per le interazioni come la visualizzazione di un menu di scelta rapida è consigliabile usare RightTapped . È possibile gestire La proprietà Holding prima di visualizzare un hint che verrà visualizzato un menu, ma per visualizzare il menu stesso, usare un gestore RightTapped . Per altre informazioni su come usare un'interazionecon blocco nella progettazione dell'app, vedere Linee guida per l'interazione utente o l'esperienza utente personalizzate.

Gli eventi di conservazione si verificano in genere in coppie. Quando l'azione viene prima interpretata come un'azione di blocco in base a nessun movimento per un periodo di tempo, La gestione viene attivata, con il valore HoldingState di Started nei dati dell'evento HoldingRoutedEventArgs . Al termine dell'azione Hold , viene generato un altro evento Holding, questa volta con HoldingState di Completato o Annullato.

  • L'azione Hold termina con HoldingState come Completato se l'utente non sposta il puntatore durante lo stato Di attesa e quindi rilascia i punti puntatore che hanno avviato l'azione. Per questo caso , RightTapped viene generato subito dopo il secondo evento Holding.

  • L'azione Hold 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 Hold termina con HoldingState come Annullata, RightTapped non verrà attivata.

Un evento Holding rappresenta un movimento, mentre un evento PointerPressed è un evento di input di livello inferiore. La conservazione e gli eventi PointerPressed possono essere attivati come risultato di un'unica interazione utente. Anche se un controllo gestisce già gli eventi del puntatore nella logica di controllo o gestisce le manipolazioni, ciò non impedisce a Holding di sparare.

Un evento Holding è potenzialmente il risultato di più di un punto puntatore. Per gli eventi di movimento di livello superiore, ad esempio Holding, non si ha più accesso immediato ai dettagli di PointerPoint , ad esempio i singoli valori PointerId o le singole coordinate. È possibile accedere al tipo di dispositivo (PointerDeviceType) e per le coordinate che è possibile chiamare GetPosition, che fornisce una media delle coordinate per un blocco da più di un punto puntatore.

La conservazione è un evento instradato. Inoltre, un elemento deve avere IsHoldingEnabled essere true per essere un'origine evento Holding (true è l'impostazione predefinita). È possibile gestire La proprietà Holding sugli elementi padre anche se IsHoldingEnabled è false nell'elemento padre, se le bolle di evento a un elemento padre da un elemento figlio dell'origine evento in cui IsHoldingEnabled è false. Per altre informazioni sul concetto di evento indirizzato, vedere 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 visibile. Altre proprietà dei tipi derivati influiscono anche sulla visibilità di hit test. Per altre informazioni, vedi Panoramica degli eventi e degli eventi indirizzati.

La gestione 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.

I controlli specifici Windows Runtime possono avere la gestione basata sulla classe per l'evento Holding. In tal caso, il controllo ha probabilmente un override per il metodo OnHolding. Per altre informazioni sulla gestione basata sulla classe per gli eventi, vedere 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 Si attiva inizialmente, purché l'elemento supporti gli eventi di manipolazione tramite un valore ManipulationMode non predefinito, ManipulationStarting viene attivato anche. Se il punto puntatore rimane in un'unica posizione abbastanza lungo per il rilevamento di Holding, ma successivamente l'utente sposta i punti puntatori associati all'azione Hold senza rilasciarli (portando a un altro evento Holding con HoldingState come Annullato), altri eventi di manipolazione come ManipulationStarted e ManipulationDelta possono essere attivati anche.

Tenere premuto l'input di mouse e penna/stilo

L'input del mouse non produce eventi di conservazione per impostazione predefinita, indipendentemente dal tempo in cui viene tenuto premuto un pulsante del mouse o il pulsante che viene mantenuto. Tuttavia, i dispositivi del mouse e alcuni dispositivi penna possono attivare RightTapped quando viene premuto un pulsante destro del mouse o un equivalente.

Nota

È possibile considerare le azioni del mouse come azioni di blocco se si usa il proprio GestureRecognizer e specificare HoldWithMouse nelle impostazioni.

Si applica a

Vedi anche