我正在尝试为我的 WPF 应用程序添加对触摸板水平滚动的支持。
我正在使用带有工作触摸板的 HP 笔记本电脑:在 Windows -> 设置 -> 触摸板下,它显示“您的 PC 具有精密触摸板”并提供广泛的选项。多手指手势有效,两指滑动水平滚动适用于我尝试过的几个应用程序;简而言之,触摸板完全能够发出多点触摸事件。
由于某些层将这些触摸事件转换为鼠标事件,垂直滚动和缩放已经可以工作,但是该层似乎没有对水平滚动做任何事情。
我在这里找到了这个解决方案:https://stackoverflow.com/a/47457389/773113(也在这里:https://blog.walterlv.com/post/handle-horizontal-scrolling-of-touchpad- en.html) 但它被
AddHook()
和 WM_MOUSEHWHEEL
弄脏了,所以我有以下问题:
我很难相信,为了实现像接收触摸板输入这样简单而平常的事情,必须诉诸这样的噱头。
这些噱头对我来说只有窗户才有强烈的气味,而在未来我会看到以下情况之一发生:
所以,如果可以避免,我宁愿不使用walterlv的解决方案。
在寻找替代方案时,我偶然发现了 WPF 中“操纵”的概念,我认为这可能会做到,但事实证明,由于某种原因,WPF 的整个操纵机制仅适用于触摸屏,不适用于触摸板,尽管我看不出两者之间有什么实际区别。
那么,有没有什么方法可以在我的 WPF 应用程序中使用触摸板支持水平滚动而无需诉诸
WM_MOUSEWHEEL
?