希望有一个简单的问题,因为我正在处理路由事件。停止处理路由事件的控制
我有一个自定义UserControl
。这包含许多其他控件。
进一步向上我的树我想响应来自其中一个包含控件(不是我的UserControl
)的双击事件。但是,我的UserControl
显然会吸引事件并将source
属性设置为自己。我怎样才能阻止它这样做?
我不能使用OriginalSource
,因为这指向最低级别的控件点击(Border
或其他)。
例如。
MyWindow <--- Want to handle double click here with Source = MyContainedControl1
|
+-MyUserControl (this is setting Source to itself. How do I turn this off?)
|
+-MyContainedControl1
|
Border <---- Mouse double clicks here
EditBox
Etc
我试图重写在MyUserControl
OnMouseDoubleClick()
和OnPreviewMouseDoubleClick()
,但在这一点上的事件已经有源甚至称基地或任何之前设定为MyUserControl
。
非常感谢
也许你可以编写一个由MyContainedControl引发的自定义事件,当引发下层元素中的doubleclick事件时。 然后在你的MyWindow中,自定义元素的OriginalSource应该是MyContainedControl1。 – Klaus78
向MyUserControl添加一个将使用EventHandler作为输入的方法。让该方法用MyContainedControl1-X注册处理程序。 – Paparazzi