它在一个特定的控件内起作用,但它不对特定的控件起作用。
如何直接从屏幕获取鼠标位置并独立于任何控件使用鼠标事件(无需平台调用)?
需要 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/