Silverlight:事件处理程序问题

时间:2010-03-09 01:57:38

标签: silverlight event-handling

所以我在页面上有一个Grid,上面有一些UserControl。每个UserControl都注册了一个MouseLeftButtonDown事件,Grid也是如此。在我将事件添加到网格之前,用户控件上的事件工作正常。但是现在我在网格上有事件,只有网格事件触发,无论我点击哪里。 UseControls都没有捕获事件。

在网格上还有MouseLeftButtonDown事件时,我需要做什么才能触发UserControls上的MouseLeftButtonDown事件?

1 个答案:

答案 0 :(得分:2)

你所描述的是非常不寻常的。

在这种情况下经常会发生两个事件。由于MouseLeftButtonDown是一个冒泡事件,当您单击UserControl时它会触发其MouseLeftButtonDown,如果附加到它的处理程序未设置Handled参数的MouseButtonEventArgs属性如果为True,则事件将冒泡到父级,依此类推。如果父控件也附加了MouseLeftButtonDown事件的代码,那么代码也会运行。

确实实际上UserControl事件没有触发,或者你碰巧发现Grid事件总是在触发。如果您完全确定将事件处理程序附加到Grid实际上会阻止UserControl事件被触发,您可以使用一个小的Repro编辑您的问题,很难看出这是怎么回事。