我和一位同事正在谈论路由事件,我们想出了一些没有多大意义的事情。首先,事件的目的是什么Direct
,为什么两者都是直接事件而不是冒泡和隧道LeftMouseButtonDown
?PreviewLeftMouseButtonDown
根据文档,LeftMouseButtonDown
(和预览)事件似乎表现为冒泡和隧道事件,除了在这些事件遍历树时引发和重新引发事件。由于直接事件只能由事件源处理,因此任何人UIElement
都可以处理直接事件,因为每个人都在引发事件,因此也是源。(除非重新加注事件与加注不同?)。为什么这些事件不像许多其他类似事件那样形成隧道和冒泡?
我的同事和我都想不出一个用例,在这个用例中,我们将使用直接策略创建自定义事件(尽管我们想出了一些用于隧道和冒泡),但是LeftMouseButtonDown
,这是最常见的事件之一(如果不是最常见)正在使用这种策略。
有人对此背后的理性有任何想法吗?
谢谢!