如何从父容器上注册的MouseLeftButtonUp事件中获取单击的对象?

时间:2011-08-29 17:27:32

标签: wpf events routing mouse mouseleftbuttonup

我在画布上绘制了椭圆,我在画布上注册了一个MouseLeftButtonUp,而且我想要使用点击椭圆:

(Ellipse)e.Source

但是e.Source始终是画布,我也尝试了e.OriginalSource并且也用PreviewMouseLeftButtonUp做了同样的事情,但结果仍然相同。事件arg是MouseButtonEventArgs。我究竟做错了什么?还有一种方法可以检查特定点是否存在画布的子元素。

2 个答案:

答案 0 :(得分:2)

改为使用e.OriginalSource

答案 1 :(得分:0)

你可能想要PreviewMouseLeftButtonUp,而不是MouseLeftButtonUp。此外,您可能需要使用Ellipse.PreviewMouseLeftButtonUp注册事件,而不是使用Canvas上的MouseUp事件。像这样:

<Canvas ... Ellipse.PreviewMouseLeftButtonUp="MyHandler" />

和H.B.提到,你想使用e.OriginalSource,而不是e.Source。

编辑:误读问题,编辑改为PreviewMouse * LeftButton * Up