UIElement.PointerReleased Événement
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Se produit lorsque l’appareil pointeur qui a précédemment lancé une action Appuyer est libéré, dans cet élément. Notez que la fin d’une action Press n’est pas garantie pour déclencher un événement PointerReleased ; d’autres événements peuvent se déclencher à la place. Pour plus d’informations, consultez Remarques.
public:
virtual event PointerEventHandler ^ PointerReleased;
// Register
event_token PointerReleased(PointerEventHandler const& handler) const;
// Revoke with event_token
void PointerReleased(event_token const* cookie) const;
// Revoke with event_revoker
UIElement::PointerReleased_revoker PointerReleased(auto_revoke_t, PointerEventHandler const& handler) const;
public event PointerEventHandler PointerReleased;
function onPointerReleased(eventArgs) { /* Your code */ }
uIElement.addEventListener("pointerreleased", onPointerReleased);
uIElement.removeEventListener("pointerreleased", onPointerReleased);
- or -
uIElement.onpointerreleased = onPointerReleased;
Public Custom Event PointerReleased As PointerEventHandler
<uiElement PointerReleased="eventhandler"/>
Type d'événement
Remarques
Les interactions tactiles, souris et stylet/stylet sont reçues, traitées et gérées en tant qu’entrée de pointeur dans l’application UWP. L’une de ces interactions peut produire un événement PointerReleased. Pour plus d’informations, consultez Gérer l’entrée de pointeur.
D’autres événements au lieu de PointerReleased peuvent se déclencher à la fin de l’action, par exemple PointerCanceled ou PointerCaptureLost. Ne vous fiez pas aux événements PointerPressed et PointerReleased qui se produisent toujours par paires. Pour fonctionner correctement, votre application doit écouter et gérer tous les événements qui représentent les conclusions probables de l’action Presse . Voici quelques-unes des raisons pour lesquelles vous n’obtenez pas d’occurrence PointerReleased :
- Différences dans la façon dont un matériel spécifique gère les actions tactiles et les actions d’appui
- Capture de pointeur programmatique à partir d’un autre pointeur
- Actions de l’utilisateur qui modifient la relation de la zone d’affichage, telles que la modification des paramètres de résolution ou de surveillance
- Interactions d’entrée telles qu’un stylet touchant la même surface qu’une action tactile précédente
L’action utilisateur qui déclenche initialement un événement PointerReleased peut entraîner l’événement Tapped , ou peut également entraîner RightTapped dans des conditions qui varient selon l’appareil. Pour plus d’informations, consultez Tapped et RightTapped.
L’entrée de la souris est associée à un seul pointeur affecté lors de la première détection de l’entrée de la souris. Cliquer sur un bouton de souris (gauche, roulette ou droit) crée une association secondaire entre le pointeur et ce bouton via l’événement PointerPressed. L’événement PointerReleased est déclenché uniquement lorsque ce même bouton de souris est relâché (aucun autre bouton ne peut être associé au pointeur tant que cet événement n’est pas terminé). En raison de cette association exclusive, les autres clics de bouton de souris sont routés via l’événement PointerMoved. Vous pouvez tester l’état du bouton de la souris lors de la gestion de cet événement, comme illustré dans l’exemple suivant.
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);
}
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);
}
PointerReleased est un événement routé. Pour plus d’informations sur le concept d’événement routé, consultez Vue d’ensemble des événements et des événements routés.
Pour les actions tactiles et pour les événements de manipulation ou spécifiques à l’interaction qui sont des conséquences d’une action tactile, un élément doit être visible au test de positionnement pour pouvoir être la source d’événement et déclencher l’événement associé à l’action. UIElement.Visibility doit être Visible. D’autres propriétés de types dérivés affectent également la visibilité des tests de positionnement. Pour plus d’informations, consultez Vue d’ensemble des événements et des événements routés.
PointerReleased prend en charge la possibilité d’attacher des gestionnaires d’événements à l’itinéraire qui sera appelé même si les données d’événement de l’événement sont marquées Handled. Consultez AddHandler.
Des contrôles Windows Runtime spécifiques peuvent avoir une gestion basée sur des classes pour l’événement d’entrée PointerReleased. Dans ce cas, le contrôle a probablement un remplacement pour la méthode OnPointerReleased. En général, l’événement est marqué comme géré par le gestionnaire de classe, et l’événement PointerReleased n’est pas déclenché pour la gestion par les gestionnaires de code utilisateur sur ce contrôle. Pour plus d’informations sur le fonctionnement de la gestion basée sur les classes des événements, consultez Vue d’ensemble des événements et des événements routés.
Les contrôles peuvent également avoir une animation de personnalité PointerUpThemeAnimation qui s’exécute indépendamment de l’événement.