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不会触发!有人知道我怎么解决这个问题吗?

PointerMoved事件未触发

我认为我不能使用System。运行时。interopservices在Windows上存储应用程序,但这是允许的。因此,我已经设法实现了期望的行为,通过使用一个线程主动检查光标的当前位置:

[ DllImport("user32.dll" )]
private static extern bool GetCursorPos(ref Win32Point pt);

这不是最优雅的解决方案,但它有效!