Erweitern Minimieren

UIElement.PointerMoved Event

Tritt ein, wenn ein Zeiger innerhalb des berührungsempfindlichen Bereichs dieses Elements bewegt wird.

Syntax


public event PointerEventHandler PointerMoved


<uiElement PointerMoved="eventhandler"/>

Ereignisinformationen

Delegat PointerEventHandler

Hinweise

Fingereingabe, Maus und Stift-/Tablettstiftinteraktionen werden als Zeigereingabe in Windows Store-Apps empfangen, verarbeitet und verwaltet. Alle Interaktionen können ein PointerMoved-Ereignis erstellen. Weitere Informationen finden Sie unter Schnellstart: Zeiger und im Abschnitt "PointerMoved für Maus- und Tablettstifteingabe" dieses Themas.

In einigen UI-Szenarien, insbesondere bei Verwendung einer Maus, wird dieses Ereignis häufig ausgelöst. Beachten Sie das Leistungsprofil für Code, den Sie in diesen Handler einfügen, und überlegen Sie Methoden, eigene Flags oder Toleranzen zu verwenden, die einschränken können, wie oft die Logik tatsächlich ausgeführt werden muss.

Dieses Ereignis ist ein Routingereignis. Weitere Informationen zum Routingereigniskonzept finden Sie in der Übersicht über Ereignisse und Routingereignisse.

Für Fingereingabeaktionen und interaktionspezifische oder Bearbeitungsereignisse, die Folgen einer Fingereingabeaktion sind, muss ein Element für Treffertests sichtbar sein, um die Ereignisquelle darzustellen und das Ereignis auszulösen, das der Aktion zugeordnet ist. UIElement.Visibility muss Visible sein. Andere Eigenschaften von abgeleiteten Typen wirken sich auch auf die Treffertestsichtbarkeit aus. Weitere Informationen finden Sie unter Treffertests und Eingabeereignisse.

Dieses Ereignis unterstützt auch die Möglichkeit, Ereignishandler zur Route hinzufügen, die aufgerufen wird, auch wenn die Ereignisdaten für das Ereignis als Handled gekennzeichnet sind. Siehe AddHandler.

PointerMoved für Maus- und Tablettstifteingabe

Ein Mauseingabegerät hat einen Bildschirm-Cursor, der angezeigt wird, wenn die Maus über die Begrenzungen eines Elements verschoben wird, auch wenn zu dem Zeitpunkt keine Maustaste gedrückt wird. Ein ähnliches Verhalten ist für die Stiftsgeräteeingabe verfügbar, wo die Eingabegeräte erkennen, wenn der Stift leicht über der Eingabegeräteoberfläche schwebt, ohne sie zu berühren. Maus und Stifteingabegerät lösen somit PointerMoved-Ereignisse häufig als Fingereingaben aus. Weitere Informationen finden Sie unter Reaktion auf Mausinteraktionen.

Im Gegensatz dazu ist ein Berührungspunkt nur auffindbar, wenn ein Finger die Oberfläche berührt. Ein Berührungspunkt generiert PointerMoved nur, solange der Berührungspunkt während der Bewegung in ständigem Kontakt mit der Oberfläche bleibt. Bei diesen Arten von Fingereingabeaktionen, die PointerMoved generieren, ist es außerdem wahrscheinlich, dass die Aktion als Manipulation oder als Geste verarbeitet wird. Weitere Informationen finden Sie unter Schnellstart: Fingereingabe.

Mauseingaben werden einem einzelnen Zeiger zugeordnet, wenn die Mauseingabe anfänglich erkannt wird, und alle von der Maus initiierten Interaktionen haben dieselbe PointerId. Wenn auf eine Maustaste geklickt wird (links, Rad oder rechts), wird eine sekundäre Zuordnung zwischen dem Zeiger und dieser Taste vom PointerPressed-Ereignis erstellt. Das PointerReleased-Ereignis wird nur ausgelöst, wenn die gleiche Maustaste losgelassen wird (keine andere Schaltfläche kann dem Zeiger zugeordnet werden, bis dieses Ereignis abgeschlossen ist). Aufgrund dieser exklusiven Zuordnung werden andere Maustastenklicks über das PointerMoved-Ereignis weitergeleitet. Sie können den Maustastenzustand testen, wenn Sie dieses Ereignis behandeln, wie in diesem Beispiel dargestellt:


private void Target_PointerMoved(object sender, PointerRoutedEventArgs e)
{
    Windows.UI.Xaml.Input.Pointer ptr = e.Pointer;

    // Multiple, simultaneous mouse button inputs are processed here.
    // Mouse input is associated with a single pointer assigned when 
    // mouse input is first detected. 
    // Clicking additional mouse buttons (left, wheel, or right) during 
    // the interaction creates secondary associations between those buttons 
    // and the pointer through the pointer pressed event. 
    // The pointer released event is fired only when the last mouse button 
    // associated with the interaction (not necessarily the initial button) 
    // is released. 
    // Because of this exclusive association, other mouse button clicks are 
    // routed through the pointer move event.          
    if (ptr.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse)
    {
        // To get mouse state, we need extended pointer details.
        // We get the pointer info through the getCurrentPoint method
        // of the event argument. 
        Windows.UI.Input.PointerPoint ptrPt = e.GetCurrentPoint(Target);
        if (ptrPt.Properties.IsLeftButtonPressed)
        {
            eventLog.Text += "\nLeft button: " + ptrPt.PointerId;
        }
        if (ptrPt.Properties.IsMiddleButtonPressed)
        {
            eventLog.Text += "\nWheel button: " + ptrPt.PointerId;
        }
        if (ptrPt.Properties.IsRightButtonPressed)
        {
            eventLog.Text += "\nRight button: " + ptrPt.PointerId;
        }
    }

    // Prevent most handlers along the event route from handling the same event again.
    e.Handled = true;

    // Display pointer details.
    updateInfoPop(e);
}


Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Windows Server 2012

Namespace

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadaten

Windows.winmd

Siehe auch

UIElement
PointerEntered
OnPointerMoved
Schnellstart: Fingereingabe
Schnellstart: Verarbeiten der Zeigereingabe
Beispiel für XAML-Benutzereingabeereignisse

 

 

Anzeigen:
© 2014 Microsoft