UIElement.PointerEntered É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 lorsqu’un pointeur entre dans la zone de test d’accès de cet élément.
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"/>
Type d'événement
Remarques
L’événement PointerEntered
se déclenche en réponse à un pointeur se déplaçant dans la zone englobante de l’élément. 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. L’un de ces appareils et leurs interactions peuvent produire un PointerEntered
événement. Pour plus d’informations, consultez Gérer l’entrée du pointeur et les autres remarques de cette rubrique.
PointerEntered
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.
Utilisez un gestionnaire basé sur PointerEventHandler pour gérer cet événement.
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.
PointerEntered
prend en charge la possibilité d’attacher des gestionnaires d’événements à l’itinéraire qui sera appelé même si les données 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 PointerEntered. Dans ce cas, le contrôle a probablement un remplacement pour la méthode OnPointerEntered. En règle générale, l’événement n’est pas marqué comme étant géré par le gestionnaire de classe, l’événement PointerEntered
peut toujours être géré par votre code utilisateur pour le contrôle dans votre interface utilisateur. 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.
Pointeur Entré pour l’entrée de la souris et du stylet/stylet
Un périphérique d’entrée de souris a un curseur à l’écran qui est visible chaque fois que la souris se déplace, même si aucun bouton de la souris n’est enfoncé à ce moment-là. Un PointerEntered
événement précède le premier PointerMoved
événement déclenché par l’élément . Un comportement similaire est disponible pour l’entrée de périphérique de stylet, où les périphériques d’entrée peuvent détecter que le stylet pointe juste sur la surface du périphérique d’entrée (IsInRange), mais ne le touche pas. L’entrée de périphérique de la souris et du stylet déclenche PointerEntered
donc des événements dans des cas légèrement différents de ceux des événements tactiles. Pour plus d’informations, voir Interactions avec la souris.
Pointeur Entré pour l’entrée tactile
Un point tactile n’est détectable que si un doigt touche la surface. Chaque fois qu’une action tactile génère un événement PointerPressed , cet événement est immédiatement précédé d’un PointerEntered
événement, toutes les données d’événement étant les mêmes informations pour les deux événements (même ID de pointeur, même position, etc.). En d’autres termes, le pointeur est considéré comme entrant dans l’élément au moment et à la position où l’élément est touché par un point tactile.
Un point tactile est également généré PointerEntered
si un pointeur reste en contact constant avec la surface à mesure qu’il se déplace et entre dans les limites de test de positionnement d’un élément. Pour ces types d’actions tactiles, il est également possible que l’action soit traitée comme une manipulation, ou comme un mouvement, plutôt qu’un événement de pointeur. Pour plus d’informations, consultez Gérer l’entrée de pointeur.
Comportement des événements routés pour PointerEntered
PointerEntered
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. Vous pouvez définir plusieurs PointerEntered
événements pour les éléments d’une interface utilisateur XAML, y compris pour les éléments qui se trouvent dans une relation parent-enfant. Dans une composition d’interface utilisateur classique, les éléments enfants se trouvent quelque part dans les limites d’un élément parent, de sorte que l’événement PointerEntered
se produit d’abord pour le parent lorsque le pointeur se déplace vers le parent, puis pour l’enfant lorsque le pointeur s’y déplace. L’événement PointerEntered
n’est généralement pas en bulle sur le parent lorsque l’élément enfant le déclenche, car conceptuellement, le pointeur se trouve déjà dans les limites parentes et il serait confus pour le système d’entrée de router également l’occurrence de l’événement PointerEntered
vers le parent. En règle générale, vous ne souhaitez pas que PointerEntered
les événements soient acheminés de toute façon, vous souhaitez les traiter uniquement à partir de l’expéditeur. Vous pouvez explicitement empêcher le routage des événements en définissant Handled sur true
dans votre gestionnaire.
Dans de rares cas, il est possible de voir une bulle d’événement PointerEntered
sur le parent. Par exemple, si vous avez utilisé un RenderTransform pour décaler un élément enfant en dehors des limites de son parent, l’événement est en bulles sur le parent lorsque l’élément enfant est entré et donne les informations sur l’événement comme indiqué par la façon dont l’élément enfant a déclenché l’événement.
Capture de pointeur
Si un autre élément a capturé le pointeur, PointerEntered
ne se déclenche pas même si le pointeur capturé entre dans les limites d’un élément. Toutefois, si la capture de pointeur est relâchée alors que le pointeur se trouve au-dessus de l’élément, PointerEntered
se déclenche, même si le pointeur est resté stationnaire dans ce cas. La valeur de GetCurrentPoint à partir des données d’événement peut être un point quelque part au milieu d’un élément plutôt qu’un point le long de ses bords, car le pointeur était déjà au-dessus de l’élément lors de la libération de la capture. Pour plus d’informations sur la capture de pointeur, consultez Interactions avec CapturePointer ou souris.
États visuels PointerOver pour les contrôles
Les contrôles qui ont des modèles de contrôle peuvent appliquer des états visuels qui sont actifs uniquement lorsqu’un pointeur se trouve au-dessus des limites du contrôle. Vous n’avez pas toujours besoin de gérer PointerEntered
ou pointerExited pour obtenir ou modifier ce comportement. Vous devrez peut-être re-modèler le contrôle. Si vous dérivez d’un contrôle existant qui a déjà la gestion des entrées de bas niveau qui appelle des états visuels, vous devez fournir un état visuel nommé « PointerOver » dans le VisualStates « CommonStates » VisualStateGroup, et la logique de contrôle intégrée charge cet état visuel chaque fois qu’un pointeur se trouve sur le contrôle. Un état visuel pour le pointeur vers le dessus est souvent présent sur les contrôles qui peuvent être appelés ou sélectionnés, comme un Objet Button ou ListViewItem. Si vous dérivez d’une classe de base comme Control qui n’a pas de gestion des événements d’entrée intégrée qui appelle des états visuels, vous devrez peut-être remplacer OnPointerEntered et OnPointerExited vous-même pour obtenir ce comportement.