UIElement.PointerEntered 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 in den Treffertestbereich dieses Elements wechselt.
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 auf einen Zeiger ausgelöst, der in den Begrenzungsbereich des Elements wechselt. Touch-, Maus- und Zeichen-/Eingabestiftinteraktionen werden als Zeigereingaben in der App empfangen, verarbeitet und verwaltet. Jedes dieser Geräte und deren Interaktionen kann ein PointerEntered Ereignis erzeugen. Weitere Informationen finden Sie unter Handle pointer input and also the other remarks in this topic.
PointerEntered ist ein Routingereignis. Weitere Informationen zum Routingereigniskonzept finden Sie unter "Ereignisse und Routingereignisse".
Verwenden Sie einen Handler, der auf PointerEventHandler basiert, um dieses Ereignis zu behandeln.
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.
PointerEntered 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 verfügen möglicherweise über eine klassenbasierte Behandlung für das PointerEntered-Eingabeereignis. Wenn ja, weist das Steuerelement wahrscheinlich eine Außerkraftsetzung für die Methode OnPointerEntered auf. In der Regel wird das Ereignis nicht vom Klassenhandler behandelt, sodass das PointerEntered Ereignis weiterhin vom Benutzercode für das Steuerelement in der Benutzeroberfläche behandelt werden kann. Weitere Informationen zur Funktionsweise der klassenbasierten Behandlung für Ereignisse finden Sie in der Übersicht über Ereignisse und Routingereignisse.
ZeigerEnter für Maus- und Zeichen-/Eingabestift
Ein Mauseingabegerät verfügt über einen Bildschirmcursor, der immer dann sichtbar ist, wenn die Maus bewegt wird, auch wenn zur Zeit keine Maustaste gedrückt wird. Einem PointerEntered Ereignis wird das erste PointerMoved Ereignis vorangestellt, das vom Element ausgelöst wird. Ein ähnliches Verhalten ist für die Eingabe des Stifts verfügbar, bei dem die Eingabegeräte erkennen können, dass der Eingabestift direkt über die Oberfläche des Eingabegeräts (IsInRange) zeigt, aber nicht berührt. Die Eingabe des Maus- und Stiftgeräts löst PointerEntered daher Ereignisse in geringfügig anderen Fällen aus als Touchereignisse. Weitere Informationen finden Sie unter Mausinteraktionen.
ZeigerEntered für Die Toucheingabe
Ein Touchpunkt kann nur erkannt werden, wenn ein Finger die Oberfläche berührt. Wenn eine Touchaktion zu einem PointerPressed-Ereignis führt, wird diesem Ereignis unmittelbar ein PointerEntered Ereignis vorangestellt, wobei alle Ereignisdaten die gleichen Informationen für die beiden Ereignisse aufweisen (gleiche Zeiger-ID, gleiche Position usw.). Mit anderen Worten, der Zeiger wird berücksichtigt, das Element im Moment einzugeben und die Position, dass das Element von einem Touchpunkt berührt wird.
Alternativ wird ein Touchpunkt generiert PointerEntered , wenn ein Zeiger bei der Bewegung in ständigem Kontakt mit der Oberfläche bleibt und die Treffertestgrenzen eines Elements eingibt. Bei diesen Arten von Touchaktionen ist es auch möglich, dass die Aktion als Manipulation oder als Geste und nicht als Zeigerereignis verarbeitet werden kann. Weitere Informationen finden Sie unter Behandeln von Zeigereingaben.
Routingereignisverhalten für PointerEntered
PointerEntered ist ein Routingereignis. Weitere Informationen zum Routingereigniskonzept finden Sie unter "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 beziehung zwischen übergeordneten und untergeordneten Elementen 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 bewegt wird. Das PointerEntered Ereignis wird in der Regel nicht an das übergeordnete Element weitergeleitet, wenn es ausgelöst wird, da der Zeiger konzeptionell bereits innerhalb der übergeordneten Grenzen liegt und es verwirrend wäre, dass das Eingabesystem das PointerEntered Ereignisereignisereignis auch an das übergeordnete Element weiterleiten kann. In der Regel möchten PointerEntered Sie nicht, dass Ereignisse trotzdem weitergeleitet werden, Sie möchten sie nur vom Absender verarbeiten. Sie können das Ereignisrouting explizit verhindern, indem Sie "Handled " true in Ihrem Handler festlegen.
In seltenen Fällen ist es möglich, eine PointerEntered Ereignisblase für das übergeordnete Element anzuzeigen. Wenn Sie z. B. ein RenderTransform verwendet haben, um ein untergeordnetes Element außerhalb der Grenzen des übergeordneten Elements zu versatzen, wird das Ereignis beim Eingeben des untergeordneten Elements an das übergeordnete Element ausgegeben und gibt die Ereignisinformationen an, wie das untergeordnete Element das Ereignis ausgelöst hat.
Zeigererfassung
Wenn ein anderes Element den Zeiger erfasst hat, wird er nicht ausgelöst, PointerEntered auch wenn der erfasste Zeiger in die Grenzen eines Elements wechselt. Wenn die Zeigeraufnahme jedoch losgelassen wird, während sich der Zeiger über dem Element befindet, wird es dann ausgelöst, PointerEntered auch wenn der Zeiger in diesem Fall nicht mehr angezeigt wurde. Der Wert von GetCurrentPoint aus Ereignisdaten kann ein Punkt in der Mitte eines Elements statt eines Punkts entlang seiner Ränder sein, da der Zeiger bereits über dem Element war, als die Aufnahme freigegeben wurde. Weitere Informationen zur Zeigererfassung finden Sie unter CapturePointer - oder Mausinteraktionen.
Visuelle PointerOver-Zustände für Steuerelemente
Steuerelemente mit Steuerelementvorlagen können visuelle Zustände anwenden, die nur aktiv sind, wenn ein Zeiger über die Grenzen des Steuerelements liegt. Sie müssen dieses Verhalten nicht immer verarbeiten PointerEntered oder pointerExited ändern. Möglicherweise müssen Sie das Steuerelement erneut 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 VisualStateGroup bereitstellen, und die integrierte Steuerelementlogik lädt diesen visuellen Zustand, wenn ein Zeiger über das Steuerelement liegt. Ein visueller Zustand für Zeigerüberblicke 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 keine integrierte Eingabeereignisbehandlung aufweist, die visuelle Zustände aufruft, müssen Sie möglicherweise "OnPointerEntered" und "OnPointerExited" außer Kraft setzen, um dieses Verhalten zu erhalten.