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 Press-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 Stift-/Eingabestiftinteraktionen werden empfangen, verarbeitet und als Zeigereingabe in einer App verwaltet. Jede dieser Interaktionen kann ein PointerPressed
Ereignis erzeugen. Weitere Informationen finden Sie unter Verarbeiten von Zeigereingaben. Zeigerereignisse sind für Szenarien gedacht, in denen Sie an mehreren Zeigern und deren Beziehungen interessiert sind, oder wenn Sie Besonderheiten jedes Zeigers untersuchen, z. B. die genaue Koordinatenposition. Andernfalls könnten Sie die Behandlung von Gestenereignissen 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 bei der ersten Ermittlung einer 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 (dem Zeiger kann erst eine andere Taste zugeordnet werden, wenn dieses Ereignis abgeschlossen ist). Aufgrund dieser exklusiven Zuordnung werden Klicks auf andere Maustasten über das PointerMoved-Ereignis geleitet. Sie können den Zustand der Maustaste bei der Behandlung dieses Ereignisses testen, wie im folgenden Beispiel gezeigt.
Zeigerereignisse von einem Mauseingabegerät weisen im Allgemeinen dieselbe PointerId in den Ereignisdetails für die Lebensdauer der App auf.
PointerPressed
ist ein Routingereignis. Weitere Informationen zum Konzept von Routingereignissen finden Sie unter Übersicht über Ereignisse und Routingereignisse.
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.
PointerPressed
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 PointerPressed
Eingabeereignis. Wenn dies der Grund ist, verfügt das Steuerelement wahrscheinlich über eine Außerkraftsetzung für die OnPointerPressed-Methode. In der Regel wird das Ereignis vom Klassenhandler behandelt, und das Ereignis wird nicht für die PointerPressed
Behandlung von Benutzercodehandlern für dieses Steuerelement ausgelöst. Beispielsweise verfügt ButtonBase über eine Klassenbehandlung, die Click behandelt PointerPressed
und stattdessen auslöst. Weitere Informationen zur Funktionsweise der klassenbasierten Behandlung von Ereignissen finden Sie unter Übersicht über Ereignisse und Routingereignisse.
Steuerelemente können auch über eine PointerDownThemeAnimation-Persönlichkeitsanimation verfügen, die unabhängig vom Ereignis ausgeführt wird.
Zeigererfassung
PointerPressed
wird manchmal als initiierendes Ereignis verwendet, wenn der Zeiger erfasst wird, sodass weitere zeigerbezogene Ereignisse von einem bestimmten Element erfasst werden, solange der Zeiger unten bleibt. Um einen Zeiger zu erfassen, rufen Sie die CapturePointer-Methode für ein bestimmtes UI-Element auf, das die Erfassung verwalten soll. Dies erfolgt in der Regel innerhalb eines PointerPressed
Ereignishandlerssender
, und Sie rufen CapturePointer
für das -Ereignis auf. Weitere Informationen dazu, wie Sie einen Zeiger erfassen und warum Sie dies möglicherweise tun möchten, finden Sie unter CapturePointer
.
PointerPressed- und Gestenereignisse oder Manipulationsereignisse
Die Benutzeraktion, die zunächst ein PointerPressed
Ereignis auslöst, kann schließlich dazu führen, dass das Holding-Ereignis eine Hold-Geste darstellt, es sei denn, das Eingabegerät ist eine Maus. Wenn das Element, in dem PointerPressed
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" unter Verarbeiten von Zeigereingaben.
Wenn PointerPressed
ausgelöst wird, werden Gestenereignisse 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 überprüfen, ob es steuerelementspezifische Ereignisse gibt, die Sie für eine Interaktion behandeln können, oder ob entsprechende Gestenereignisse vorhanden sind. 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 durch den Benutzer vorgesehen ist. Oder wenn Ihr Element keine Schaltfläche ist, Aber Sie behandeln und ein Ereignis für die primäre Aktion eines Elements behandeln, würden Sie Tapped behandeln.
Gestenereignisse können speziell für einzelne Elemente deaktiviert werden, indem Eigenschaften wie IsTapEnabled festgelegt werden. Sie können die Gestenereignisse deaktivieren, wenn Sie Bearbeitungen verarbeiten, aber Sie müssen in der Regel keine Gestenereignisse deaktivieren, wenn Sie Zeigerereignisse behandeln. Zeigerereignisse können nicht ausdrücklich deaktiviert werden, aber Sie können sie nicht behandeln.
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 und PointerReleased
, die immer in Paaren auftreten. Um ordnungsgemäß zu funktionieren, muss Ihre App auf alle Ereignisse lauschen und diese behandeln, die wahrscheinliche Schlussfolgerungen für die Press-Aktion darstellen. Einige der Gründe, warum Sie möglicherweise kein Vorkommen erhalten PointerReleased
, sind:
- Unterschiede in der Handhabung von Touch- und Pressaktionen durch bestimmte Hardware
- Programmgesteuerte Zeigererfassung aus einem anderen Zeiger
- Benutzeraktionen, die die Beziehung des Anzeigebereichs ändern, z. B. Ändern der Auflösung oder Überwachungseinstellungen
- Eingabeinteraktionen, z. B. ein Tablettstift, der dieselbe Oberfläche berührt wie eine vorherige Toucheingabeaktion