加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 03:57:34 所属栏目:百科 来源:网络整理
导读:它在一个特定的控制范围内工作,但并不能用于具体的控制. 如何直接从屏幕(没有平台调用)获取鼠标位置和使用鼠标事件独立于任何控件? 2需要点数: 鼠标不在控件内,而是在屏幕上的鼠标事件. 鼠标位置不在控件内,而是在屏幕上. 应该在不使用Platform Invoke的情
它在一个特定的控制范围内工作,但并不能用于具体的控制.

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读