UIElement.Holding Ereignis

Definition

Tritt auf, wenn eine ansonsten nicht behandelte Hold-Interaktion über dem Treffertestbereich dieses Elements erfolgt.

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 Halten-Aktion erzeugen, Mausgeräte hingegen in der Regel nicht. Weitere Informationen finden Sie unter Verarbeiten 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 Halten-Aktion interpretiert, wird vom Benutzer über Systemeinstellungen angepasst.

Das Halten dient der Informationsbenutzeroberfläche, aber für Interaktionen wie die Anzeige eines Kontextmenüs sollten Sie stattdessen RightTapped verwenden. Sie können das Halten zuerst behandeln, 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 in Paaren auf. Wenn die Aktion zum ersten Mal als Hold-Aktion 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 weiteres Holding-Ereignis ausgelöst, diesmal mit HoldingState von Completed oder Canceled.

  • Die Hold-Aktion 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 Hold-Aktion 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 des Treffertest-status für das Element während der Aktion oder das Erfassen eines anderen Zeigers. Wenn die Hold-Aktion mit HoldingState als Canceled endet, wird RightTapped nicht ausgelöst.

Ein Holding-Ereignis stellt eine Geste dar, während ein PointerPressed-Ereignis ein Eingabeereignis auf niedrigerer Ebene ist. Holding- 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 das Auslösen von Holding nicht.

Ein Holding-Ereignis ist möglicherweise das Ergebnis von mehr als einem Zeigerpunkt. Bei Gestenereignissen auf höherer Ebene wie Halten haben Sie keinen sofortigen 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 Mittelwert der Koordinaten für einen Haltepunkt von mehr als einem Zeigerpunkt angibt.

Das Halten ist ein Routingereignis. 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 für übergeordnete Elemente auch dann zu behandeln, wenn IsHoldingEnabled für das übergeordnete Element false ist, wenn das Ereignis aus einem untergeordneten Element der Ereignisquelle zu einem übergeordneten Element eingeblasen wird, wobei IsHoldingEnabledfalse ist. Weitere Informationen zum Konzept von Routingereignissen finden Sie unter Übersicht über Ereignisse und Routingereignisse.

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 Sichtbarkeit von Treffertests 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 Verarbeitet 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 dies der Grund ist, verfügt das Steuerelement wahrscheinlich über eine Außerkraftsetzung für die OnHolding-Methode. Weitere Informationen zur Funktionsweise der klassenbasierten Behandlung von Ereignissen finden Sie unter Übersicht über Ereignisse und Routingereignisse.

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

Immer wenn Holding anfänglich ausgelöst wird, solange das Element Manipulationsereignisse über einen nicht standardmäßigen ManipulationMode-Wert unterstützt, wird Auch ManipulationStarting ausgelöst. Wenn der Zeigerpunkt so lange an einem Ort verbleibt, dass Das Halten erkannt wird, aber danach der Benutzer die Zeigerpunkte verschiebt, die der Aktion Halten zugeordnet sind, ohne sie freizugeben (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 Schaltfläche gedrückt und losgelassen 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