微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/csharp/93219.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐