J'ai deux contrôles A et B. Contrôle B est placé sur A. Lorsque B est cliqué seulement son événement cliqué est déclenché, mais j'ai besoin de l'événement de clic de A à feu aussi. Cela peut-il être réalisé en utilisant des événements routés?Clic événement pour les contrôles ci-dessous d'autres contrôles
Voici une capture d'écran des contrôles:
alt text http://www.imagebanana.com/img/hu5znv4/buttons.png
Bien sûr, ce cas est juste un exemple réduite, je suis à la recherche d'une manière générale pour déclencher des événements sur tous les contrôles en dessous du curseur de la souris/à un endroit. Cependant, une solution concrète à ce problème m'aiderait aussi! Merci beaucoup pour tout conseil!
A noter que votre solution * ne * faire "l'événement click' A' [...] le feu trop" comme par l'OP - si un gestionnaire pour 'Button.Click' enregistré sur' ButtonA' * va aussi attraper l'événement. C'est une différence subtile mais importante! –
Bonjour Josh, merci pour votre réponse. Ça m'a pris un moment pour savoir pourquoi tu travailles: Tu as placé le deuxième bouton * à l'intérieur * et pas * au-dessus * de l'autre. Dans la manière est aussi une possiblité, je me demande juste s'il y a une manière plus confortable. Quelque chose comme le passage automatique d'événements comme c'est le cas lorsque IsHitTestVisible est défini sur false, mais toujours le contrôle où IsHitTestVisible est faux ..): –
@stefan - Vous pouvez ajouter un gestionnaire MouseLeftButtonDown à l'objet Window racine en utilisant le paramètre processedEventsToo puis utiliser VisualTreeHelper.HitTest pour savoir quels éléments croisent le point sur lequel vous avez cliqué. Voir http://msdn.microsoft.com/en-us/library/ms752097.aspx#using_a_hit_test_result_callback – Josh