答案 0 :(得分:7)
使用.NET BCL是不可能的。但是,如果您真的需要它,可以在SetCursorPos
中使用原生User32.dll
。
[DllImport("User32.dll")]
private static extern bool SetCursorPos(int x, int y);
正如其他人最有可能指出的那样,您可以使用System.Windows.Forms
实现相同的功能,但是在开发WPF应用程序时,请使用DllImport
。
如果您要在应用程序中使用Kinect传感器,我会亲自编写自定义WPF控件而不是尝试覆盖系统鼠标:
在我今年早些时候参加的X360 Kinect会议上,几乎有一半时间用于管理用户体验,因为它与简单的点击式互动不同。
如果您有兴趣,我可以通过Kinect会议上传/通过电子邮件发送幻灯片。他们读得很好。
答案 1 :(得分:4)
您可以使用Cursor.Position
中的System.Windows.Forms
属性进行此操作。
正如MSDN documentation for Cursor.Position
:
private void MoveCursor()
{
// Set the Current cursor, move the cursor's Position,
// and set its clipping rectangle to the form.
this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50);
Cursor.Clip = new Rectangle(this.Location, this.Size);
}
如果您希望在Windows窗体之外执行此操作,可以在User32的SetCursorPos上执行平台调用。