PointerMoved事件未触发
本文关键字:事件 PointerMoved | 更新日期: 2023-09-27 18:14:30
我有一个Windows商店应用程序,在系统的光标下绘制图像。我使用
捕获所有光标移动var window = Window.Current .Content;
window .AddHandler(PointerMovedEvent, new PointerEventHandler (window_PointerMoved), true);
如果我用鼠标移动光标,这是正常的
然而,我有另一个应用程序-一个桌面应用程序-,它改变了系统光标的位置。我使用这个方法以编程方式设置光标的位置:
[DllImport("user32")]
private static extern int SetCursorPos(int x, int y);
然而,当以编程方式移动光标时,商店应用程序上的PointerMovedEvent不会触发!有人知道我怎么解决这个问题吗?
我认为我不能使用System。运行时。interopservices在Windows上存储应用程序,但这是允许的。因此,我已经设法实现了期望的行为,通过使用一个线程主动检查光标的当前位置:
[ DllImport("user32.dll" )]
private static extern bool GetCursorPos(ref Win32Point pt);
这不是最优雅的解决方案,但它有效!