它可以在特定控件内工作,但不能解决特定控件。
如何直接从屏幕上获取鼠标位置和使用鼠标事件而不受任何控件的影响(不使用Platform Invoke)?
2点要点:
应该在不使用Platform Invoke的情况下解决该问题。
接下来的两个不起作用:
System.Windows.Input.Mouse.GetPosition(this)
不会使鼠标的位置超出特定的控件。
System.Windows.Forms.Cursor.Position.X
System.Windows.Forms.Cursor.Position
无法使用,因为它在WPF应用程序中没有类型,但在Windows Forms应用程序中有效。
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);
因此即使它不在该控件上也可以捕获鼠标事件。这是链接
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句