在wpf中获取鼠标位置可以从某些鼠标参数中获得
比如MouseButtonEventArgs 这个参数的GetPosition()
或者是静态类Mouse.GetPosition();
但是这个两个方法都是相对wpf的窗口的中某个ui元素来说
也就是说获得的鼠标的位置是相对于窗口来说的,是以wpf窗口的0,0坐标来计算,而不是整个电脑屏幕的0,0坐标来计算
可以用下面一个方法来获得鼠标相对于整个屏幕的绝对位置
添加命名空间
using System.Runtime.InteropServices;
class Win32
{
[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int X;
public int Y;
public POINT(int x, int y)
{
this.X = x;
this.Y = y;
}
}
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool GetCursorPos(out POINT pt);
}
使用的时候这样调用:
Win32.POINT pi = new Win32.POINT();
Win32.GetCursorPos(out pi);
MessageBox.Show(pi.X.ToString() + "__" + pi.Y.ToString());
比如MouseButtonEventArgs 这个参数的GetPosition()
或者是静态类Mouse.GetPosition();
但是这个两个方法都是相对wpf的窗口的中某个ui元素来说
也就是说获得的鼠标的位置是相对于窗口来说的,是以wpf窗口的0,0坐标来计算,而不是整个电脑屏幕的0,0坐标来计算
可以用下面一个方法来获得鼠标相对于整个屏幕的绝对位置
添加命名空间
using System.Runtime.InteropServices;
class Win32
{
[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int X;
public int Y;
public POINT(int x, int y)
{
this.X = x;
this.Y = y;
}
}
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool GetCursorPos(out POINT pt);
}
使用的时候这样调用:
Win32.POINT pi = new Win32.POINT();
Win32.GetCursorPos(out pi);
MessageBox.Show(pi.X.ToString() + "__" + pi.Y.ToString());
本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。