Серебряный свет: не удается найти изображение на холсте - PullRequest
0 голосов
/ 25 июня 2010

В моем Canvas у меня есть объект изображения. Я не установил источник, но у него есть координаты и размер. Тег является

Вот проблема: когда я наведу на нее мышь, я хочу ее найти. С этим кодом:

VisualTreeHelper.FindElementsInHostCoordinates (point, Application.Current.RootVisual)

Изображение не будет найдено, если не указан источник. Если источник не установлен, изображение не возвращается. Кто-нибудь знает почему? Это вызывает у меня проблемы. У меня есть некоторый код перетаскивания, и я собираюсь добавить что-то в этот элемент управления Image, но мне нужно знать, когда над ним находится мышь.

Я знаю, что есть и другие способы, которыми я мог бы это сделать (например, поместить что-то еще в этом месте, например, сетку или что-то в этом роде и обнаружить это), но это не сработает. Я могу придумать несколько способов, которые будут работать, но они гораздо менее изящны.

Если бы я мог заставить вышеизложенное вернуть мое изображение, это было бы идеально.

Ответы [ 2 ]

1 голос
/ 25 июня 2010

В вашем коде у вас было Point point = e.GetPosition(_canvas); Это получает координаты MousePosition относительно холста, но ваша вторая строка VisualHelper.FindElementsInHostCoordinates(point,Application.Current.RootVisual) выполняет поиск относительно всей страницы. Вам нужно изменить одно или другое так, чтобы они относились к одному и тому же элементу управления. Я бы просто изменил на VisualHelper.FindElementsInHostCoordinates(point,_canvas)

0 голосов
/ 25 июня 2010

Вы можете добавить объект <Border> вокруг объекта Image.

Или вы можете добавить обработчики событий для мыши и выхода из мыши и изменить курсор.

...