无法处理PreviewMouseDown

| 嘿;我在用户控件中具有以下视觉层次结构: 网格->画布-> MyContentControl MyContentControl是从ContentControl派生的类,该类的顶部有一个矩形装饰器,以使单击某些对象(增加命中测试区域)更加容易。装饰器始终存在,但背景透明。 当我从用户控件的代码背后单击MyContentControl时,我希望看到引发PreviewMouseDown事件,但是似乎并没有在该事件上引发该事件,仅在装饰者级别。 该事件在装饰者级别进行处理,但是e.IsHandled未设置为true,因此它应继续冒泡或隧穿。据我了解,PreviewMouseDown是隧道传输,而IIRC应该首先在usercontrol上引发。 我想念什么吗? 谢谢。     
已邀请:
给定您描述的结构,实际的可视树将如下所示:
Window
 -> Grid
    -> Canvas
       -> MyContentControl
 -> AdornerLayer
    -> MyContentControlAdorner
如您所见,装饰器(
MyContentControlAdorner
)与自定义控件位于树的不同分支中。这是因为装饰物放置在称为“2ѭ”的特殊元素内。这样的“ 2”通常直接位于顶级元素内部(例如“ 4”或“ 5”)。 因此,考虑到所有这些,应该清楚的是,如果在装饰器中引发一个事件,它将通过以下路径隧穿:“ 6”。 话虽这么说,您无法处理位于不同子树中的两个元素上的鼠标事件(即使它们在另一个子树上放置)。     

要回复问题请先登录注册