所以我在页面上有一个Grid,上面有一些UserControl。每个UserControl都注册了一个MouseLeftButtonDown事件,Grid也是如此。在我将事件添加到网格之前,用户控件上的事件工作正常。但是现在我在网格上有事件,只有网格事件触发,无论我点击哪里。 UseControls都没有捕获事件。
在网格上还有MouseLeftButtonDown事件时,我需要做什么才能触发UserControls上的MouseLeftButtonDown事件?
答案 0 :(得分:2)
你所描述的是非常不寻常的。
在这种情况下经常会发生两个事件。由于MouseLeftButtonDown
是一个冒泡事件,当您单击UserControl时它会触发其MouseLeftButtonDown
,如果附加到它的处理程序未设置Handled
参数的MouseButtonEventArgs
属性如果为True,则事件将冒泡到父级,依此类推。如果父控件也附加了MouseLeftButtonDown
事件的代码,那么代码也会运行。
确实实际上UserControl事件没有触发,或者你碰巧发现Grid事件总是在触发。如果您完全确定将事件处理程序附加到Grid实际上会阻止UserControl事件被触发,您可以使用一个小的Repro编辑您的问题,很难看出这是怎么回事。