Freigeben über


UIElement.PointerEntered Ereignis

Definition

Tritt auf, wenn ein Zeiger in den Treffertestbereich dieses Elements eintritt.

public:
 virtual event PointerEventHandler ^ PointerEntered;
// Register
event_token PointerEntered(PointerEventHandler const& handler) const;

// Revoke with event_token
void PointerEntered(event_token const* cookie) const;

// Revoke with event_revoker
UIElement::PointerEntered_revoker PointerEntered(auto_revoke_t, PointerEventHandler const& handler) const;
public event PointerEventHandler PointerEntered;
function onPointerEntered(eventArgs) { /* Your code */ }
uIElement.addEventListener("pointerentered", onPointerEntered);
uIElement.removeEventListener("pointerentered", onPointerEntered);
- or -
uIElement.onpointerentered = onPointerEntered;
Public Custom Event PointerEntered As PointerEventHandler 
<uiElement PointerEntered="eventhandler"/>

Ereignistyp

Hinweise

Das PointerEntered Ereignis wird als Reaktion darauf ausgelöst, dass sich ein Zeiger in den Begrenzungsbereich des Elements bewegt. Touch-, Maus- und Stift-/Eingabestiftinteraktionen werden empfangen, verarbeitet und als Zeigereingabe in der App verwaltet. Jedes dieser Geräte und deren Interaktionen kann ein PointerEntered Ereignis erzeugen. Weitere Informationen finden Sie unter Verarbeiten von Zeigereingaben und den anderen Hinweisen in diesem Thema.

PointerEntered ist ein Routingereignis. Weitere Informationen zum Konzept von Routingereignissen finden Sie unter Übersicht über Ereignisse und Routingereignisse.

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.

PointerEntered 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 PointerEntered-Eingabeereignis. Wenn dies der Grund ist, verfügt das Steuerelement wahrscheinlich über eine Außerkraftsetzung für die OnPointerEntered-Methode. In der Regel wird das Ereignis nicht vom Klassenhandler behandelt markiert, sodass das PointerEntered 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.

PointerEntered 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 PointerEntered -Ereignis wird dem ersten PointerMoved Ereignis vorangestellt, das vom -Element ausgelöst 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 PointerEntered daher Ereignisse in etwas anderen Fällen aus als Touchereignisse. Weitere Informationen finden Sie unter Mausinteraktionen.

PointerEntered für Toucheingaben

Ein Berührungspunkt kann nur erkannt werden, wenn ein Finger die Oberfläche berührt. Wenn eine Toucheingabeaktion zu einem PointerPressed-Ereignis führt, wird diesem Ereignis sofort ein PointerEntered Ereignis vorangestellt, 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 PointerEntered , wenn ein Zeiger während der Bewegung in ständigem Kontakt mit der Oberfläche bleibt und in die Treffertestgrenzen eines Elements wechselt. 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 PointerEntered

PointerEntered ist ein Routingereignis. Weitere Informationen zum Konzept von Routingereignissen finden Sie unter Übersicht über Ereignisse und Routingereignisse. Sie können mehrere PointerEntered 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 PointerEntered Ereignis zuerst für das übergeordnete Element auftritt, wenn der Zeiger in das übergeordnete Element wechselt, und dann für das untergeordnete Element, wenn der Zeiger dorthin verschoben wird. Das PointerEntered Ereignis wird in der Regel nicht an das übergeordnete Element weitergeleitet, wenn es vom untergeordneten Element ausgelöst wird, da sich der Zeiger konzeptionell bereits innerhalb der übergeordneten Grenzen befindet und es für das Eingabesystem verwirrend wäre, das PointerEntered Ereignisereignis auch an das übergeordnete Element weiterzuleiten. In der Regel möchten PointerEntered 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 PointerEntered Ereignisblase für das übergeordnete Element anzuzeigen. Wenn Sie beispielsweise eine RenderTransform verwendet haben, um ein untergeordnetes Element außerhalb der Begrenzungen des übergeordneten Elements zu verschieben, wird das Ereignis beim Eingeben des untergeordneten Elements in eine Blasenblase eingeblasen und gibt die Ereignisinformationen an, wie das untergeordnete Element das Ereignis ausgelöst hat.

Zeigererfassung

Wenn ein anderes Element den Zeiger erfasst hat, wird nicht ausgelöst, PointerEntered auch wenn der erfasste Zeiger in die Begrenzungen eines Elements eintritt. Wenn die Zeigererfassung jedoch losgelassen wird, während sich der Zeiger über dem Element befindet, PointerEntered wird ausgelöst, selbst wenn der Zeiger in diesem Fall stationär geblieben ist. Der Wert von GetCurrentPoint aus Ereignisdaten kann ein Punkt in der Mitte eines Elements und nicht ein Punkt an dessen Rändern sein, da sich der Zeiger bereits über dem Element befand, als die Erfassung freigegeben wurde. Weitere Informationen zur Zeigererfassung finden Sie unter CapturePointer - oder Mausinteraktionen.

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 nicht immer mit PointerEntered oder PointerExited umgehen , um dieses Verhalten abzurufen oder zu ä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.

Gilt für:

Weitere Informationen