c# – 如何在WPF屏幕上获取鼠标位置?

它在一个特定的控制范围内工作,但并不能用于具体的控制.

如何直接从屏幕(没有平台调用)获取鼠标位置和使用鼠标事件独立于任何控件?

2需要点数:

鼠标不在控件内,而是在屏幕上的鼠标事件.
鼠标位置不在控件内,而是在屏幕上.

应该在不使用Platform Invoke的情况下解决.

接下来两个不工作:

System.Windows.Input.Mouse.GetPosition(this)

没有把鼠标放在一个特定的控件上.

System.Windows.Forms.Cursor.Position.X

System.Windows.Forms.Cursor.Position不起作用,因为它在WPF应用程序中没有类型,但它在Windows窗体应用程序中起作用.

IntelliSense获取System.Windows.Forms.Cursor.Position,但它没有得到任何类型的位置,因此我无法得到:

Position.X    
Position.Y

Point pointToWindow = Mouse.GetPosition(this);

Point pointToScreen = PointToScreen(pointToWindow);

没有把鼠标放在一个特定的控件上.

解决方法

使用控件的MouseDown事件可以尝试这样:
var point = e.GetPosition(this.YourControl);

编辑:
您可以使用Mouse.Capture(YourControl)将鼠标事件捕获到特定控件;所以它将捕获鼠标事件,即使它不在该控件上.这是link

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...