Как получить выбранный объект из события MouseLeftButtonUp, зарегистрированного в родительском контейнере? - PullRequest
3 голосов
/ 29 августа 2011

У меня есть эллипсы, нарисованные поверх холста, я зарегистрировал MouseLeftButtonUp на холсте, и я и хочу получить то, что эллипс был нажат с помощью:

(Ellipse)e.Source

Но e.Source - это всегда холст, я также пробовал e.OriginalSource, а также делал то же самое с PreviewMouseLeftButtonUp, но результат был тем же. Аргументом события является MouseButtonEventArgs. Что я делаю неправильно? также есть способ проверить, есть ли дочерний элемент холста в определенной точке.

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

Вместо этого используйте e.OriginalSource.

0 голосов
/ 30 августа 2011

Вы, вероятно, хотите PreviewMouseLeftButtonUp, а не MouseLeftButtonUp.Также вам может потребоваться зарегистрировать ваше событие, используя Ellipse.PreviewMouseLeftButtonUp, а не событие MouseUp на Canvas.Примерно так:

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

И, как упомянул HB, вы хотите использовать e.OriginalSource, а не e.Source.

EDIT: неправильно прочитан вопрос, редактирование для изменения в PreviewMouse * LeftButton* до

...