Freigeben über


UIElement.Holding Ereignis

Definition

Tritt auf, wenn eine andernfalls unbehandelte Halteinteraktion über dem Treffertestbereich dieses Elements auftritt.

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"/>

Ereignistyp

Hinweise

Toucheingaben können eine Halteaktion erzeugen, Mausgeräte können dies jedoch in der Regel nicht. Weitere Informationen finden Sie unter Behandeln von Zeigereingaben.

Die Ereignisse Tapped, DoubleTapped und RightTapped treten erst auf, nachdem der Touchpunkt entfernt wurde. Das anfängliche Holding-Ereignis tritt jedoch auf, während der Touchpunkt noch in Kontakt ist. Das Ereignis tritt auf, wenn der Touchpunkt für einen bestimmten Zeitraum ungefähr an derselben PointerPoint-Position verbleibt. Das genaue Timing, was das System als Halteaktion interpretiert, kann vom Benutzer über Systemeinstellungen angepasst werden.

Das Halten ist für die Informationsbenutzeroberfläche vorgesehen, aber für Interaktionen wie die Anzeige eines Kontextmenüs sollten Sie stattdessen RightTapped verwenden. Sie können zuerst halten verwenden, um einen Hinweis darauf anzuzeigen, dass ein Menü angezeigt wird, aber um das Menü selbst anzuzeigen, verwenden Sie einen RightTapped-Handler . Weitere Informationen zur Verwendung einer Halteinteraktion in Ihrem App-Design finden Sie unter Touchinteraktionsdesign oder UX-Richtlinien für benutzerdefinierte Benutzerinteraktionen.

Halteereignisse treten in der Regel paarweise auf. Wenn die Aktion zum ersten Mal als Halteaktion interpretiert wird, die auf keiner Bewegung für einen bestimmten Zeitraum basiert, wird Holding ausgelöst, wobei der HoldingState-Wert in den HoldingRoutedEventArgs-Ereignisdatengestartet ist. Wenn die Hold-Aktion endet, wird ein anderes Holding-Ereignis ausgelöst, diesmal mit HoldingState von Abgeschlossen oder Abgebrochen.

  • Die Halteaktion endet mit HoldingState als Abgeschlossen , wenn der Benutzer den Zeiger während des Haltezustands nicht bewegt und dann die Zeigerpunkte freigibt, die die Aktion initiiert haben. In diesem Fall wird RightTapped direkt nach dem zweiten Holdingereignis ausgelöst.

  • Die Halteaktion endet mit HoldingState als Abgebrochen, wenn der Benutzer die Zeiger, die die Aktion initiiert haben, bewegt, oder auch für ungewöhnliche Situationen wie das Ändern der Treffertest-status für das Element während der Aktion oder das Erfassen eines anderen Zeigers. Wenn die Halteaktion mit HoldingState als Abgebrochen endet, wird RightTapped nicht ausgelöst.

Ein Holdingereignis stellt eine Geste dar, während ein PointerPressed-Ereignis ein Eingabeereignis auf niedrigerer Ebene ist. Halte- und PointerPressed-Ereignisse können als Ergebnis einer einzelnen Benutzerinteraktion ausgelöst werden. Selbst wenn ein Steuerelement bereits Zeigerereignisse in der Steuerelementlogik verarbeitet oder Bearbeitungen verarbeitet, verhindert dies nicht das Auslösen von Haltevorgängen.

Ein Holdingereignis ist möglicherweise das Ergebnis von mehr als einem Zeigerpunkt. Bei Gestenereignissen auf höherer Ebene wie Halten haben Sie keinen direkten Zugriff mehr auf PointerPoint-Details wie einzelne PointerId-Werte oder einzelne Koordinaten. Sie haben Zugriff auf den Gerätetyp (PointerDeviceType), und für Koordinaten können Sie GetPosition aufrufen, was einen Durchschnitt der Koordinaten für einen Haltepunkt von mehr als einem Zeigerpunkt angibt.

Holding ist ein routingfähiges Ereignis. Außerdem muss für ein Element IsHoldingEnabledtrue sein, um eine Holding-Ereignisquelle zu sein (true ist die Standardeinstellung). Es ist möglich, das Halten auf übergeordneten Elementen zu behandeln, auch wenn IsHoldingEnabled für das übergeordnete Element false ist, wenn das Ereignis zu einem übergeordneten element aus einem untergeordneten Element der Ereignisquelle führt, wobei IsHoldingEnabledfalse ist. Weitere Informationen zum Konzept für routingfähige Ereignisse finden Sie unter Übersicht über Ereignisse und routingfähige Ereignisse.

Bei Toucheingabeaktionen und interaktionsspezifischen Ereignissen oder Manipulationsereignissen, die aus einer Toucheingabeaktion resultieren, muss ein Element bei Treffertests sichtbar sein, damit es der Ereignisquelle entsprechen und das der Aktion zugeordnete Ereignis auslösen kann. UIElement.Visibility muss sichtbar sein. Andere Eigenschaften abgeleiteter Typen wirken sich ebenfalls auf die Treffertestsicht aus. Weitere Informationen finden Sie unter Übersicht über Ereignisse und Routingereignisse.

Das Halten unterstützt die Möglichkeit, Ereignishandler an die Route anzufügen, die aufgerufen wird, auch wenn die Ereignisdaten für das Ereignis als Behandelt gekennzeichnet sind. Weitere Informationen finden Sie unter AddHandler.

Bestimmte Windows-Runtime-Steuerelemente verfügen möglicherweise über eine klassenbasierte Behandlung für das Holding-Ereignis. Wenn ja, verfügt das Steuerelement wahrscheinlich über eine Überschreibung für die OnHolding-Methode. Weitere Informationen zur Funktionsweise der klassenbasierten Behandlung für Ereignisse finden Sie unter Übersicht über Ereignisse und Routingereignisse.

Getippt und Holding schließen sich gegenseitig aus. Wenn die Aktion den Zeitschwellenwert überschreitet, um als Halteaktion betrachtet zu werden, wird sie auch nicht als Tap-Aktion betrachtet.

Wenn Die Haltehaltung zunächst ausgelöst wird, wird ManipulationStarting ebenfalls ausgelöst, solange das Element Manipulationsereignisse über einen nicht standardmäßigen ManipulationMode-Wert unterstützt. Wenn der Zeigerpunkt lange genug an einem Ort verbleibt, damit halte erkannt wird, aber danach der Benutzer die Zeigerpunkte verschiebt, die der Halteaktion zugeordnet sind, ohne sie loszulassen (was zu einem anderen Holding-Ereignis mit HoldingState als abgebrochen führt), können auch andere Manipulationsereignisse wie ManipulationStarted und ManipulationDelta ausgelöst werden.

Halten für Maus- und Stift-/Eingabestift

Die Mauseingabe erzeugt standardmäßig keine Halteereignisse, unabhängig davon, wie lange eine Maustaste gedrückt gehalten wird oder welche Schaltfläche gehalten wird. Mausgeräte und einige Stiftgeräte können jedoch RightTapped auslösen, wenn eine rechte Maustaste oder eine entsprechende Taste gedrückt und freigegeben wird.

Hinweis

Es gibt eine Möglichkeit, Mausaktionen als Halteaktionen zu behandeln, wenn Sie Ihren eigenen GestureRecognizer verwenden und HoldWithMouse in den Einstellungen angeben.

Gilt für:

Weitere Informationen