Свойство HitTest - PullRequest
       17

Свойство HitTest

2 голосов
/ 27 мая 2010

Я новичок в Silverlight и пытаюсь прочитать учебник Silverlight, в котором используется метод HitTest, чтобы узнать, когда мышь находится над элементом управления. Но, к сожалению, я не вижу ни одного метода с таким именем.

Где находится метод HitTest? Это потому, что я использую Silverlight 4? есть ли способ замены?

Ответы [ 2 ]

3 голосов
/ 27 мая 2010

В старых версиях (до 3.0) был метод HitTest. В Silverlight 3 и 4 вы используете VisualTreeHelper.FindElementsInHostCoordinates метод достижения аналогичной цели.

Например, следующий код можно использовать в событии мыши на поверхности, над которой вы можете перетаскивать элемент Он определит, перекрывает ли какая-либо часть перетаскиваемого объекта целевой элемент. Предупреждающий код воздуха

var container = (UIElement)sender;
var transform = draggedItem.TransformToVisual(container);

Rect rect = new Rect(transform.Transform(new Point(0, 0)), 
   new Size(draggedItem.ActualWidth, draggedItem.ActualHeight);

bool hit = VisualTreeHelper.FindElementsInHostCoordinates(rect, container)
  .Any(elem => elem == targetItem);
0 голосов
/ 27 мая 2010

Я думаю, что вы ищете события MouseEnter и MouseLeave.

http://msdn.microsoft.com/en-us/library/system.windows.uielement.mouseenter%28VS.95%29.aspx

Вы можете подписаться на эти события и установить флаг, который указывает, что мышь находится над вашим элементом, или делать все остальное, что требуется вашему приложению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...