It seems that all of the way of retrieving an element under the Mouse relates to Visual Hit testing.
Is there some mechanism that I'm missing which would allow me to grab the actual UIElement
that represents the current visual tree that the HitTest
returns?
Summary of what I'm doing:
I have a custom tooltip class which relies on doing something based on the UIElement that the mouse is over.
Simply put, it hooks into the owning Window's PreviewMouseMove
event and updates a "current Item". This current item should represent the UIElement
that the mouse is currently over top of.
Unfortunately everything I've encountered with Mouse.DirectlyOver
, VisualTreeHelper.HitTest
(callbacks included) doesn't work.
Can anyone offer insight in how to accomplish a seemingly simple task in WPF within Window's MouseMove
event?
I don't know any explicit way, but the idea is pretty simple,
1) Find the visual tree element
2) Test if the element is present in logical tree,
3) If it's present, you've found the answer.
4) Otherwise you're gonna have to call
VisualTreeHelper.GetParent()
and continue the algorithm.Ps,
LogicalTreeHelper.GetParent(your visual tree element)
MIGHT also work.Use the
Mouse.DirectlyOver
property: