Sprache

UIElement.Holding Ereignis

Definition

Tritt auf, wenn eine andernfalls nicht behandelte Haltebereich über den 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

Toucheingabe kann eine Halten-Aktion erzeugen, mausgeräte können jedoch im Allgemeinen nicht. Weitere Informationen finden Sie unter Behandeln von Zeigereingaben.

Die Ereignisse "Getippt", " DoubleTapped" und " RightTapped " treten erst auf, nachdem der Touchpunkt entfernt wurde. Das anfängliche Holding-Ereignis tritt jedoch auf, während der Touchpunkt noch kontaktiert ist. Das Ereignis tritt auf, wenn der Touchpunkt in etwa derselben PointerPoint-Position für einen bestimmten Zeitraum verbleibt. Die genaue Anzeigedauer, die das System als Halteaktion interpretiert, ist durch Systemeinstellungen anpassbar.

Die Aufbewahrung ist für informationsbezogene UI vorgesehen, aber für Interaktionen wie das Anzeigen eines Kontextmenüs sollten Sie stattdessen RightTapped verwenden. Sie können die Holding zuerst behandeln, um einen Hinweis anzuzeigen, dass ein Menü angezeigt wird, aber um das Menü selbst anzuzeigen, verwenden Sie einen RightTapped-Handler . Weitere Informationen zur Verwendung einer Halteinteraktionsinteraktion im App-Design finden Sie in den Richtlinien für Touchinteraktionen oder UX-Richtlinien für benutzerdefinierte Benutzerinteraktionen.

Halteereignisse treten in der Regel in Paaren auf. Wenn die Aktion zum ersten Mal als Aufbewahrungsaktion interpretiert wird, die auf keiner Bewegung für einen bestimmten Zeitraum basiert, wird "Holding" ausgelöst, wobei " HoldingState " den Wert " Started " in den Ereignisdaten "HoldingRoutedEventArgs " aufweist. Wenn die Aufbewahrungsaktion beendet wird, wird ein anderes Holding-Ereignis ausgelöst, diesmal mit "HoldingState" von "Abgeschlossen" oder "Abgebrochen".

  • Die Haltevorgangsaktion endet mit "HoldingState" als abgeschlossen, wenn der Benutzer den Zeiger während des Haltezustands nicht bewegt und dann die Zeigerpunkte loslässt, die die Aktion initiiert haben. Für diesen Fall wird RightTapped direkt nach dem zweiten Holding-Ereignis ausgelöst.

  • Die Haltevorgangsaktion endet mit "HoldingState " als "Abbrechen ", wenn der Benutzer den Zeiger bewegt, der die Aktion initiiert hat, oder auch für ungewöhnliche Situationen, z. B. das Ändern des Trefferteststatus für das Element während der Aktion oder das Erfassen eines anderen Zeigers. Wenn die Aufbewahrungsaktion mit "HoldingState" endet, wird "RightTapped" nicht ausgelöst.

Ein Holding-Ereignis stellt eine Geste dar, während ein PointerPressed-Ereignis ein Eingabeereignis auf niedrigerer Ebene ist. Halten und PointerPressed-Ereignisse können als Ergebnis einer einzelnen Benutzerinteraktion ausgelöst werden. Selbst wenn ein Steuerelement zeigerereignisse in der Steuerelementlogik bereits verarbeitet oder Manipulationen verarbeitet, verhindert dies nicht, dass die Holding ausgelöst wird.

Ein Holding-Ereignis ist potenziell das Ergebnis von mehr als einem Zeigerpunkt. Für die Gestikereignisse 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, die Sie GetPosition aufrufen können. Dadurch erhalten Sie einen Mittelwert der Koordinaten für einen Haltepunkt von mehr als einem Zeigerpunkt.

Die Holding ist ein Routingereignis. Außerdem muss ein Element isHoldingEnabledtrue sein, um eine Holding-Ereignisquelle zu sein (true ist die Standardeinstellung). Es ist möglich, das Halten von übergeordneten Elementen zu behandeln, auch wenn IsHoldingEnabled für das übergeordnete Element falsch ist, wenn das Ereignis von einem untergeordneten Element einer Ereignisquelle, bei dem IsHoldingEnabledfalsch ist, zu einem übergeordneten Element übergibt. Weitere Informationen zum Routingereigniskonzept finden Sie unter "Ereignisse und Routingereignisse".

Bei Touchaktionen und auch bei interaktionsspezifischen oder Manipulationsereignissen, die Folgen einer Touchaktion sind, muss ein Element im Treffer-Test sichtbar sein, um als Ereignisquelle zu fungieren und das Ereignis auszulösen, das der Aktion zugeordnet ist. UIElement.Visibility muss sichtbar sein. Andere Eigenschaften abgeleiteter Typen wirken sich auch 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 handled gekennzeichnet sind. Siehe "AddHandler".

Bestimmte Windows-Runtime-Steuerelemente können eine klassenbasierte Behandlung für das Holding-Ereignis haben. Wenn ja, weist das Steuerelement wahrscheinlich eine Außerkraftsetzung für die Methode OnHolding auf. Weitere Informationen zur Funktionsweise der klassenbasierten Behandlung für Ereignisse finden Sie in der Übersicht über Ereignisse und Routingereignisse.

Angetippt und Holding schließen sich gegenseitig aus. Wenn die Aktion den Zeitschwellenwert überschreitet, um als Haltevorgang betrachtet zu werden, gilt sie nicht auch als Tippaktion .

Jedes Mal, wenn das Halten anfänglich ausgelöst wird, solange das Element Manipulationsereignisse über einen nicht standardmäßigen ManipulationMode-Wert unterstützt, wird ManipulationStarting ebenfalls ausgelöst. Wenn der Zeigerpunkt an einer Stelle lang genug bleibt, damit die Holding erkannt werden kann, aber danach verschiebt der Benutzer die Zeigerpunkte, die der Halteaktion zugeordnet sind, ohne sie freizugeben (was zu einem anderen Holding-Ereignis mit HoldingState als Canceled führt), dann können auch andere Manipulationsereignisse wie ManipulationStarted und ManipulationDelta ausgelöst werden.

Halten für Maus- und Zeichen-/Eingabestift

Die Mauseingabe erzeugt standardmäßig keine Holdingereignisse, 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 Entsprechung 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