ne suis pas sûr, mais vous pouvez vouloir un chat à aboyer.
Le RoutedEvent ClickEvent Button (de PresentationFramework) est déclarée comme:
public static readonly RoutedEvent ClickEvent =
EventManager.RegisterRoutedEvent("Click",
RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof
(ButtonBase));
Notez le readonly
RoutingStrategy
de Bubble
.
Ce qui suit peut aider à comprendre Tunnel, Bubble et direct: msdn.microsoft.com/en-us/library/system.windows.routingstrategy.aspx
Et cela, vous devez prendre le reste de la chemin: msdn.microsoft.com/en-us/magazine/cc785480.aspx
Un conseil: par convention les événements de tunnel dans WPF commencent par "Aperçu" (par exemple "PreviewExplode".) Si l'événement ne commence pas avec "Aperçu", il n'utilise probablement pas le tunnel RoutingStrategy.Vous verrez également un Tunnel et une Bulle couplés avec le Tunnel tirant d'abord puis la Bulle comme dans "PreviewExplode" suivi de "Explode"
Si vous avez besoin vous pourriez envisager
- tunnel Click un bouton, en utilisant PreviewMouseDown (pas le même bien sûr et dangereux probable puisque tous-bas de la souris sont destinés à devenir des clics).
- Ecriture d'un TunnelButton qui déclenche un PreviewClick puis un Click.
Je pense que je tort croyait qu'un RoutingStrategy.Tunnel pouvait communiquer des événements aux enfants du nœud source (par exemple, un contrôle parent pouvait déclencher un événement qui «passerait» à un enfant). Après avoir relu la documentation que vous mettez ici, tous les événements routés semblent commencer (bulle) ou terminer (tunnel) ou les deux (direct) au niveau du noeud source. Donc dans ce cas, mon exemple ne fonctionnera pas avec WPF RoutedEvents. Un chat aboyant ... – Sumtraveller
Aussi n'a pas aidé que j'ai utilisé BOUTON dans le cadre de mon exemple (qui seulement distrait de la vraie question) - ouais, j'ai vu l'exemple PreviewMouseDown ... j'espérais PARENT (où l'événement se produit) - [tunnel] -> ToChild – Sumtraveller