>我创建的应用程序将在后台工作。在按钮单击上,我想在鼠标所在的位置显示窗口。我必须将其相对于整个屏幕而不是某个窗口。
在所有帖子中,都会有人插入使用:
System.Windows.Forms.Control.MousePosition;
但我不能在 wpf 中使用它。
对我来说,它甚至可以从命令行或电源外壳中获取。
我知道有两种解决方案,一种,可以说最糟糕的一种是根据寡妇位置和光标窗口位置进行计算。
另一个,使用PInvoke。
static class Cursor {
internal struct POINT {
public int X;
public int Y;
}
[DllImport( "user32.dll" )]
static extern bool GetCursorPos ( out POINT lpPoint );
[DllImport( "user32.dll" )]
static extern bool SetCursorPos ( int X, int Y );
public static POINT Position {
get {
GetCursorPos( out POINT point );
return point;
}
set {
SetCursorPos( value.X, value.Y );
}
}
}