на самом деле я нашел даже 2 способа:
VisualTreeHelper.HitTest и Mouse.DirectlyOver, они оба возвращают одно и то же (верхний элемент под курсором), но не совсем то, что мне нужно.
У меня есть WrapPanel, в ней несколько Label. Я хочу узнать, индекс элемента под курсором мыши
w.Children.IndexOf(элемент), чтобы на его место поставить другой (со сдвигом). Но когда я в функцию передаю верхний элемент, получаю -1, потому что Label содержит TextBlock, и возвращается именно он. А мне надо получить именно Label. Ведь я в xaml коде добавил в панель именно лэйбл, а не текстовый блок.