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

前端之家收集整理的这篇文章主要介绍了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

猜你在找的C#相关文章