UIElement.PointerExited Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Tritt auf, wenn ein Zeiger den Treffertestbereich dieses Elements verlässt.
public:
virtual event PointerEventHandler ^ PointerExited;
// Register
event_token PointerExited(PointerEventHandler const& handler) const;
// Revoke with event_token
void PointerExited(event_token const* cookie) const;
// Revoke with event_revoker
UIElement::PointerExited_revoker PointerExited(auto_revoke_t, PointerEventHandler const& handler) const;
public event PointerEventHandler PointerExited;
function onPointerExited(eventArgs) { /* Your code */ }
uIElement.addEventListener("pointerexited", onPointerExited);
uIElement.removeEventListener("pointerexited", onPointerExited);
- or -
uIElement.onpointerexited = onPointerExited;
Public Custom Event PointerExited As PointerEventHandler
<uiElement PointerExited="eventhandler"/>
Ereignistyp
Hinweise
Das PointerExited
Ereignis wird als Reaktion auf einen Zeiger ausgelöst, der sich ursprünglich im begrenzungsgebundenen Bereich des Elements befand und diesen begrenzungsenden Bereich verlässt. Touch-, Maus- und Stift-/Eingabestiftinteraktionen werden empfangen, verarbeitet und als Zeigereingabe in der App verwaltet. Jedes dieser Geräte und deren Interaktionen kann ein PointerExited
Ereignis erzeugen. Weitere Informationen finden Sie unter Behandeln von Zeigereingaben und den anderen Hinweisen in diesem Thema.
Verwenden Sie einen Handler, der auf PointerEventHandler basiert, um dieses Ereignis zu behandeln.
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.
PointerExited
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 PointerExited
Eingabeereignis. Wenn dies der Grund ist, verfügt das Steuerelement wahrscheinlich über eine Außerkraftsetzung für die OnPointerExited-Methode. In der Regel wird das Ereignis nicht vom Klassenhandler behandelt markiert, sodass das PointerExited
Ereignis weiterhin von Ihrem Benutzercode für das Steuerelement in Ihrer Benutzeroberfläche verarbeitet werden kann. Weitere Informationen zur Funktionsweise der klassenbasierten Behandlung von Ereignissen finden Sie unter Übersicht über Ereignisse und Routingereignisse.
Wenn ein anderes Element den Zeiger erfasst hat, wird nicht ausgelöst, PointerExited
auch wenn der erfasste Zeiger die Grenzen eines Elements verlässt. Weitere Informationen zur Zeigererfassung finden Sie unter CapturePointer - oder Mausinteraktionen.
PointerExited für Maus- und Stift-/Eingabestift
Ein Mauseingabegerät verfügt über einen Bildschirmcursor, der immer sichtbar ist, wenn die Maus bewegt wird, auch wenn zu diesem Zeitpunkt keine Maustaste gedrückt wird. Ein ähnliches Verhalten ist für die Eingabe des Stiftgeräts verfügbar, bei dem die Eingabegeräte erkennen können, dass der Tablettstift direkt über die Eingabegeräteoberfläche (IsInRange) zeigt, aber nicht berührt. Die Eingabe des Maus- und Stiftgeräts löst PointerExited
daher Ereignisse in etwas anderen Fällen aus als Touchereignisse. Weitere Informationen finden Sie unter Mausinteraktionen. Ein PointerExited
-Ereignis wird nach dem letzten PointerMoved-Ereignis für das Element ausgelöst.
PointerExited für Toucheingaben
Ein Berührungspunkt kann nur erkannt werden, wenn ein Finger die Oberfläche berührt. Wenn eine Toucheingabeaktion zu einem PointerReleased-Ereignis führt, folgt unmittelbar auf dieses Ereignis ein PointerExited
Ereignis, wobei alle Ereignisdaten die gleichen Informationen für die beiden Ereignisse sind (gleiche Zeiger-ID, gleiche Position usw.). Mit anderen Worten, der Zeiger wird so betrachtet, dass er das Element in dem Moment und an der Position eingibt, an der das Element durch einen Berührungspunkt berührt wird.
Alternativ wird ein Berührungspunkt generiert PointerExited
, wenn dieser Zeiger während der Bewegung in ständigem Kontakt mit der Oberfläche bleibt, sich zunächst über dem Element befindet und dann die Treffertestgrenzen eines Elements verlässt. Bei diesen Arten von Touchaktionen ist es auch möglich, dass die Aktion als Manipulation oder als Geste statt als Zeigerereignis verarbeitet werden kann. Weitere Informationen finden Sie unter Verarbeiten von Zeigereingaben.
Routingereignisverhalten für PointerExited
PointerExited
ist ein Routingereignis. Weitere Informationen zum Konzept von Routingereignissen finden Sie unter Übersicht über Ereignisse und Routingereignisse. Sie können mehrere PointerExited
Ereignisse für Elemente in einer XAML-Benutzeroberfläche definieren, einschließlich für Elemente, die sich in einer Über-/Untergeordneten Beziehung befinden. In einer typischen UI-Komposition befinden sich die untergeordneten Elemente irgendwo innerhalb der Grenzen eines übergeordneten Elements, sodass das PointerExited
Ereignis zuerst für das untergeordnete Element auftritt, wenn sich der Zeiger aus dem untergeordneten Element bewegt, und dann für das übergeordnete Element, wenn der Zeiger vollständig aus diesem übergeordneten Element heraus bewegt wird. Das PointerExited
Ereignis wird in der Regel nicht an das übergeordnete Element ausgegeben, wenn es vom untergeordneten Element ausgelöst wird, da es für das Eingabesystem verwirrend wäre, das PointerExited
Ereignisereignis auch an das übergeordnete Element weiterzuleiten. In der Regel möchten PointerExited
Sie, dass Ereignisse sowieso nicht weitergeleitet werden, Sie möchten sie nur vom Absender verarbeiten. Sie können das Ereignisrouting explizit verhindern, indem Sie in Ihrem Handler handled auf true
festlegen.
In seltenen Fällen ist es möglich, eine PointerExited
Ereignisblase für das übergeordnete Element anzuzeigen. Wenn Sie z. B. eine RenderTransform verwendet haben, um ein untergeordnetes Element außerhalb der Grenzen des übergeordneten Elements zu verschieben, wird das Ereignis dem übergeordneten Element übergeben, wenn das untergeordnete Element beendet wird, und gibt die Ereignisinformationen an, wie vom untergeordneten Element gemeldet, wie das Ereignis ausgelöst wurde.
Visuelle PointerOver-Zustände für Steuerelemente
Steuerelemente mit Steuerelementvorlagen können nur dann visuelle Zustände anwenden, die aktiv sind, wenn sich ein Zeiger über den Begrenzungen des Steuerelements befindet. Sie müssen pointerEntered nicht immer behandeln oder PointerExited
dieses Verhalten abrufen oder ändern. Möglicherweise müssen Sie die Vorlage für das Steuerelement neu erstellen. Wenn Sie von einem vorhandenen Steuerelement ableiten, das bereits über die Eingabebehandlung auf niedriger Ebene verfügt, die visuelle Zustände aufruft, sollten Sie einen visuellen Zustand namens "PointerOver" in der "CommonStates"- VisualStateGroup bereitstellen, und die integrierte Steuerelementlogik lädt diesen visuellen Zustand, wenn sich ein Zeiger über dem Steuerelement befindet. Ein visueller Zustand für zeiger-over ist häufig für Steuerelemente vorhanden, die aufgerufen oder ausgewählt werden können, z. B. ein Button - oder ListViewItem-Objekt. Wenn Sie von einer Basisklasse wie Control ableiten, die nicht über eine integrierte Eingabeereignisbehandlung verfügt, die visuelle Zustände aufruft, müssen Sie möglicherweise OnPointerEntered und OnPointerExited überschreiben, um dieses Verhalten zu erhalten. Verwenden Sie OnPointerExited
, um GoToState aufzurufen, um einen anderen Zustand als den Zustand "PointerOver" zu laden, z. B. "Normal".