UIElement.PointerPressed 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 das Zeigergerät eine Drücken-Aktion innerhalb dieses Elements initiiert.
public:
virtual event PointerEventHandler ^ PointerPressed;
// Register
event_token PointerPressed(PointerEventHandler const& handler) const;
// Revoke with event_token
void PointerPressed(event_token const* cookie) const;
// Revoke with event_revoker
UIElement::PointerPressed_revoker PointerPressed(auto_revoke_t, PointerEventHandler const& handler) const;
public event PointerEventHandler PointerPressed;
function onPointerPressed(eventArgs) { /* Your code */ }
uIElement.addEventListener("pointerpressed", onPointerPressed);
uIElement.removeEventListener("pointerpressed", onPointerPressed);
- or -
uIElement.onpointerpressed = onPointerPressed;
Public Custom Event PointerPressed As PointerEventHandler
<uiElement PointerPressed="eventhandler"/>
Ereignistyp
Hinweise
Touch-, Maus- und Zeichen-/Eingabestiftinteraktionen werden als Zeigereingaben in einer App empfangen, verarbeitet und verwaltet. Jede dieser Interaktionen kann ein PointerPressed Ereignis erzeugen. Weitere Informationen finden Sie unter Behandeln von Zeigereingaben. Zeigerereignisse sind für Szenarien vorgesehen, in denen Sie an mehreren Zeigern und deren Beziehungen interessiert sind, oder wenn Sie Spezifisches der einzelnen Zeiger untersuchen, z. B. genaue Koordinatenposition. Andernfalls können Sie die Behandlung von Gestikereignissen wie "Getippt" in Betracht ziehen.
Verwenden Sie einen Handler, der auf PointerEventHandler basiert, um dieses Ereignis zu behandeln.
Die Mauseingabe wird einem einzelnen Zeiger zugeordnet, der beim ersten Erkennen der Mauseingabe zugewiesen wird. Durch Klicken auf eine Maustaste (links, Rad oder rechts) wird eine sekundäre Zuordnung zwischen dem Zeiger und dieser Schaltfläche durch das PointerPressed Ereignis erstellt. Das PointerReleased-Ereignis wird nur ausgelöst, wenn dieselbe Maustaste losgelassen wird (keine andere Schaltfläche kann dem Zeiger zugeordnet werden, bis dieses Ereignis abgeschlossen ist). Aufgrund dieser exklusiven Zuordnung werden andere Mausklicks über das PointerMoved-Ereignis weitergeleitet. Sie können den Zustand der Maustaste beim Behandeln dieses Ereignisses testen, wie im folgenden Beispiel gezeigt.
Zeigerereignisse von einem Mauseingabegerät weisen in der Regel die gleiche PointerId in den Ereignisdetails für die Lebensdauer der App auf.
PointerPressed ist ein Routingereignis. 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.
PointerPressed 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 PointerPressed Eingabeereignis. Wenn ja, weist das Steuerelement wahrscheinlich eine Außerkraftsetzung für die Methode OnPointerPressed auf. In der Regel wird das Ereignis vom Klassenhandler behandelt, und das Ereignis wird nicht für die PointerPressed Behandlung durch Benutzercodehandler für dieses Steuerelement ausgelöst.
Beispielsweise verfügt ButtonBase über eine Klassenbehandlung, die Click behandelt PointerPressed und stattdessen ausgelöst wird. Weitere Informationen zur Funktionsweise der klassenbasierten Behandlung für Ereignisse finden Sie in der Übersicht über Ereignisse und Routingereignisse.
Steuerelemente können auch eine PointerDownThemeAnimation-Persönlichkeitsanimation aufweisen, die unabhängig vom Ereignis ausgeführt wird.
Zeigererfassung
PointerPressed wird manchmal beim Erfassen des Zeigers als initiierendes Ereignis verwendet, sodass weitere zeigerbezogene Ereignisse von einem bestimmten Element erfasst werden, solange der Zeiger nach unten bleibt. Um einen Zeiger zu erfassen, rufen Sie die CapturePointer-Methode für ein bestimmtes UI-Element auf, das die Aufnahme beibehalten soll. Dies erfolgt in der Regel innerhalb eines PointerPressed Ereignishandlerssender, und Sie rufen CapturePointer das Ereignis auf. Weitere Informationen zum Erfassen eines Zeigers und dazu, warum Sie dies tun möchten, finden Sie unter CapturePointer.
PointerPressed- und Gestikereignisse oder Manipulationsereignisse
Die Benutzeraktion, die ein PointerPressed Ereignis auslöst, kann anfangs dazu führen, dass das Holding-Ereignis eine Haltebewegung darstellt, es sei denn, das Eingabegerät ist eine Maus. Wenn das element, in dem PointerPressed der Fall auftritt, einen nicht standardmäßigen ManipulationMode-Wert aufweist, kann die Aktion auch zu verschiedenen Manipulationsereignissen wie ManipulationStarted führen. Weitere Informationen finden Sie im Abschnitt "Verwenden von Manipulationsereignissen" in "Behandeln von Zeigereingaben".
Wenn PointerPressed dieses Ereignis ausgelöst wird, werden Gestikereignisse wie "Tapped " noch nicht ausgelöst, da die anderen Gestenereignisse als "Halten " darauf warten, dass der Zeiger losgelassen wird, bevor ein Ereignis ausgelöst wird.
Als allgemeine Entwurfsregel für die Benutzerinteraktionen Ihrer App sollten Sie untersuchen, ob steuerelementspezifische Ereignisse vorhanden sind, die Sie für eine Interaktion oder geeignete Gestenereignisse behandeln können. Wenn ihr Steuerelement beispielsweise eine Schaltfläche ist, verfügt dieses Steuerelement über ein Click-Ereignis , das speziell für den Aufruf der Aktion der Schaltfläche vorgesehen ist. Oder wenn Ihr Element keine Schaltfläche ist, Aber Sie behandeln und ereignis für die primäre Aktion eines Elements, würden Sie tippen.
Gestikereignisse können speziell für einzelne Elemente deaktiviert werden, indem Eigenschaften wie IsTapEnabled festgelegt werden. Sie können die Gestikereignisse deaktivieren, wenn Sie Manipulationen verarbeiten, jedoch in der Regel keine Gestenereignisse deaktivieren müssen, wenn Zeigerereignisse behandelt werden. Zeigerereignisse können nicht explizit deaktiviert werden, sie können jedoch nicht behandelt werden.
PointerPressed und PointerReleased
Andere Ereignisse anstelle von PointerReleased können am Ende der Aktion ausgelöst werden, z. B. PointerCanceled oder PointerCaptureLost. Verlassen Sie sich nicht auf PointerPressed Ereignisse, die PointerReleased immer in Paaren auftreten. Um ordnungsgemäß zu funktionieren, muss Ihre App auf alle Ereignisse lauschen und behandeln, die wahrscheinliche Rückschlüsse auf die Presseaktion darstellen. Einige der Gründe, warum Sie möglicherweise kein Vorkommen erhalten PointerReleased , sind:
- Unterschiede bei der Behandlung von Fingereingabeaktionen und Drücken-Aktionen durch bestimmte Hardware
- Programmgesteuerte Zeigererfassung von einem anderen Zeiger
- Benutzeraktionen, die die Beziehung des Anzeigebereichs ändern, z. B. Ändern der Auflösung oder Monitoreinstellungen
- Eingabeinteraktionen wie ein Eingabestift, der dieselbe Oberfläche berührt wie eine vorherige Toucheingabeaktion