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

标签 c# .net wpf c#-4.0 mouse-position

它在一个特定的控件内起作用,但它不对特定的控件起作用。

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

需要 2 个点:

  1. 鼠标不在控件内但在屏幕上时的鼠标事件。
  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,因此我无法获取:

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# - 如何在 WPF 中获取鼠标在屏幕上的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29822020/

相关文章:

c# - 使用 NUnit 按顺序运行 TestFixtures

c# - Windows 10 专业版 1803 蓝牙配置文件访问

c# - 更新一个对象中的值更新第二个对象值 ASP.Net identity 2.0

c# - MVVM 架构 WPF

c# - Caliburn.Micro 将 View 模型与 ItemsControl 绑定(bind)列表

c# - 无法使用 Autofac 解析 NameValueCollection

c# - 淡入/淡出图像的最佳方式

c# - 如何获取具有给定类型的类实例的所有成员?

c# - .NET 自定义配置部分 : Configuration. GetSection 引发 'unable to locate assembly' 异常

c# - 清除 CheckBoxList 的值?