Так что вы, наверное, уже прочитали мой ответ, где я сказал, что у меня это работает. И он работает отлично (за исключением того, что требует большой точности с помощью мыши), но я хочу спросить: действительно ли разумно добавлять обработчик событий в КАЖДЫЙ эллипс, который добавляется на холст? Теперь я не знаю, что это за память, или, может быть, для WPF и Windows это очень просто.
В практическом случае, я думаю, было бы не более 30-50 отверстий даже на экране с несколькими рисунками, но все же; FIFTY обработчики событий? Это просто кажется страшным. И на самом деле каждая «дыра» визуально представлена двумя концентрическими кружками и текстовой меткой (см. Скриншот здесь: http://twitpic.com/1f2ci/full), и я знаю, что пользователь может ожидать нажатия на любой из этих элементов. выбрать отверстие. Это означает, что обработчик событий на 3 элемента для каждого отверстия. Теперь мы можем говорить о 100 или более обработчиках событий.
Похоже, что должно быть решение, в котором вы могли бы иметь только один обработчик событий на Canvas и читать ссылку на элемент под мышью, затем обрабатывать это, чтобы получить свойство .Tag этого элемента, и так далее.