c# - PointerMoved 事件未触发

标签 c# wpf windows-runtime windows-store-apps winrt-xaml

我有一个 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 不会触发! 有谁知道我该如何解决这个问题?

最佳答案

我以为我不能在 Windows 商店应用程序上使用 System.Runtime .InteropServices,但这是允许的。因此,我设法通过使用以下方法主动检查光标当前位置的线程来实现所需的行为:

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

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

关于c# - PointerMoved 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24935418/

相关文章:

c# - TreeView 不显示更新

wpf - 从 wpf 图像控件中提取图像并将其保存到本地 PCc 上的 png 文件中#

c# - 将 HttpClient 类与 WinRT 结合使用

c# - 在 .NET 2.0 中将位图转换为一个多页 TIFF 图像

c# - 使用 ffmpeg 创建多个电影缩略图(一次一个)失败

c# - 重构仅由一个函数调用不同的代码块

.net - 有没有办法将 Setter 元素放入 EventTrigger 中?

c# - 实体管理器中自动生成的时间戳

c# - 无法将类型为 'Windows.UI.Xaml.Controls.Canvas' 的对象转换为类型 'Canvas'

c# - 如何在 Windows Phone 8.1 中使用 ThemeResources 更改主题?