我在画布上绘制了椭圆,我在画布上注册了一个 MouseLeftButtonUp,并且我想使用以下方法获取单击的椭圆:
(Ellipse)e.Source
但是 e.Source 始终是画布,我也尝试了 e.OriginalSource 并且对 PreviewMouseLeftButtonUp 做了同样的事情,但结果仍然相同。事件 arg 是 MouseButtonEventArgs。我究竟做错了什么?还有一种方法可以检查特定点是否有画布的子元素。
我在画布上绘制了椭圆,我在画布上注册了一个 MouseLeftButtonUp,并且我想使用以下方法获取单击的椭圆:
(Ellipse)e.Source
但是 e.Source 始终是画布,我也尝试了 e.OriginalSource 并且对 PreviewMouseLeftButtonUp 做了同样的事情,但结果仍然相同。事件 arg 是 MouseButtonEventArgs。我究竟做错了什么?还有一种方法可以检查特定点是否有画布的子元素。
改为使用e.OriginalSource
。
您可能想要 PreviewMouseLeftButtonUp,而不是 MouseLeftButtonUp。此外,您可能需要使用 Ellipse.PreviewMouseLeftButtonUp 注册您的事件,而不是 Canvas 上的 MouseUp 事件。像这样的东西:
<Canvas ... Ellipse.PreviewMouseLeftButtonUp="MyHandler" />
正如 HB 提到的,你想使用 e.OriginalSource,而不是 e.Source。
编辑:误读问题,编辑更改为 PreviewMouse*LeftButton*Up