WPF鼠标事件更新性能

我有一个使用WPF用于UI的3D渲染应用程序。 渲染本身是用本地代码完成的,但交互来自WPF。

现在,我已经看到WPF的鼠标事件以非常不规则的间隔被触发,并且在某些情况下,我从来没有得到任何事件。 这似乎与应用程序使用的CPU数量有关。

通过使用低级别的Win32 GetCursorPos和类似的方法,我可以获得更好的响应,但这与WPF UI元素交互混淆。

有没有办法控制WPF消息处理循环的优先级,或者通过其他方法确保我获得我需要的鼠标事件?

另外,我可以使用Win32调用低级别的鼠标处理程序,以某种方式将事件注入到WPF中?


我结束了从原生渲染层刷新窗口消息队列,每帧一次。 基本上我在渲染之前每帧调用一次本地代码:

    MSG msg;
    while(PeekMessage(&msg, hwnd, 0, 0, PM_REMOVE))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

这解决了我的问题,因为我现在获得了之前丢弃的所有鼠标事件。

链接地址: http://www.djcxy.com/p/39547.html

上一篇: WPF mouse events update performance

下一篇: Update viewmodel based on MainWindow event