1. 实时获取鼠标相对某一控件的相对坐标关系
Point p = Mouse.GetPosition(e.Source as FrameworkElement);
Point p = (e.Source as FrameworkElement).PointToScreen(pp);
2. 鼠标与屏幕坐标系的获取
/// <summary>
/// 设置鼠标的坐标
/// </summary>
/// <param name="x">横坐标</param>
/// <param name="y">纵坐标</param>
[DllImport("User32")]
public extern static void SetCursorPos(int x, int y);
public struct POINT
{
public int X;
public int Y;
public POINT(int x, int y)
{
this.X = x;
this.Y = y;
}
}
/// <summary>
/// 获取鼠标的坐标
/// </summary>
/// <param name="lpPoint">传址参数,坐标point类型</param>
/// <returns>获取成功返回真</returns>
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool GetCursorPos(out POINT pt);
private void Window_MouseMove(object sender, MouseEventArgs e)
{
POINT p = new POINT();
if (GetCursorPos(out p))//API方法
{
txtStat.Text = string.Format("X:{0} Y:{1}", p.X, p.Y);
}
}
3. 获取子控件相对父控件的位置坐标
GeneralTransform childTransform = child.TransformToAncestor(parent);
Point p = childTransform.Transform(new Point(0, 0));