private Point CalculateLocalPosition(Point global, Control control)
{
Point absolutePosition = control.AbsolutePosition;
Vector2 local = Vector2.Transform(
new Vector2(global.X - absolutePosition.X, global.Y - absolutePosition.Y),
Matrix.Invert(control.AbsoluteTransformation));
return new Point((int)local.X, (int)local.Y);
}