不确定,但你可能想让猫叫。
Button 的 RoutedEvent ClickEvent(来自 PresentationFramework)声明为:
public static readonly RoutedEvent ClickEvent =
EventManager.RegisterRoutedEvent("Click",
RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof
(ButtonBase));
注意readonly
RoutingStrategy
的Bubble
。
以下内容可能有助于理解 Tunnel、Bubble 和 Direct:msdn.microsoft.com/en-us/library/system.windows.routingstrategy.aspx
这应该会带你走完剩下的路:msdn.microsoft.com/en-us/magazine/cc785480.aspx
提示:按照惯例,WPF 中的隧道事件以“Preview”开头(例如-“PreviewExplode”。如果事件不以“Preview”开头,则可能不使用隧道 RoutingStrategy。此外,您通常会看到一个 Tunnel 和气泡首先与隧道配对,然后是气泡,如“PreviewExplode”,然后是“Explode”。
如果你需要一个 Button 的 Click 隧道,你可以考虑
- 使用 PreviewMouseDown (当然不一样,可能很危险,因为并非所有的鼠标按下都意味着点击)。
- 编写一个引发 PreviewClick 和 Click 的 TunnelButton。