Рассматривая историю ваших вопросов, я могу придумать два подхода. Я подозреваю, что форма просто помещается на Canvas
, а MouseMove
, о котором вы говорите, относится к обработчику событий, который вы прикрепили к Canvas
. На этом основании тогда.
void Canvas_MouseMove(object sender, MouseEventArgs e)
{
Type currentType = e.OriginalSource.GetType();
// Make decisions based on value of currentType here
DependencyObject source = (DependencyObject)e.OriginalSource;
Point p = new Point(Canvas.GetLeft(source), Canvas.GetTop(source));
}
Более общим решением является использование подхода TransformToVisual
. Что-то вроде: -
var transform = ((UIElement)e.OriginalSource).TransformToVisual(MyCanvas);
Point p = transform.Transform(Point(0,0));