通过触摸板(Bamboo)跟踪“命令”发送到 WPF 窗口
Posted
技术标签:
【中文标题】通过触摸板(Bamboo)跟踪“命令”发送到 WPF 窗口【英文标题】:Track "commands" send to WPF window by touchpad (Bamboo) 【发布时间】:2010-12-05 02:57:32 【问题描述】:我刚买了一个触控板,它允许绘图和使用多点触控。 Windows 7 不完全支持该 api,所以我必须依赖 build in config 对话框。
基本功能都在工作,所以如果我在我的 WPF 工具中绘制一些东西,并用两根手指进行右键单击,我可以例如改变颜色。我现在要做的是将其他功能分配给 WPF 中的特殊功能。
有谁知道如何找出 pad 与应用程序通信的方式?它可以工作,例如在 Firefox 中滚动,就像它应该的那样(显示在这张照片上)。但我不知道如何连接滚动事件,我尝试了一个 Scrollviewer(它忽略了我的滚动尝试),我还连接了一个按下按键的事件,但它没有触发(我假设垫没有“按下一个键" 但不知何故直接发送“滚动”命令。如何在 WPF 中捕获该命令?
非常感谢, 克里斯
[编辑] 我让滚动工作,但只有上下,而不是左右。这只是一个愚蠢的“滚动查看器中的列表框”错误。但是仍然不确定 ZOOM in 之类的命令(即使在绘画中也可以使用).. 哪个 API 包含这样的东西?
[EDIT2] 有趣的是,缩放在 Firefox 中有效,而水平滚动则无效。但是,在绘画中,水平滚动有效......
[编辑 3] 刚刚在 wacom 论坛上提问,让我们看看供应商支持的反应时间... http://forum.wacom.eu/viewtopic.php?f=4&t=1939
这是配置表面的图片,以了解我在说什么:(Bamboo 设置,我尝试在 WPF 中捕获这些命令)
alt text http://img340.imageshack.us/img340/3751/20091008210914.jpg
【问题讨论】:
【参考方案1】:你看过this了吗?
WPF 3.5 本身不支持多点触控(它在 WPF 4.0 中提供),但是该套件中的示例应该让您开始使用 Windows7 集成库,它访问本机 Win32 API 以提供所需的支持(不要担心它并不丑:)。
【讨论】:
谢谢,实验室看起来很有趣,但这对我的问题不起作用。我并没有真正使用新的 windows 7 API 的多点触控显示器(我希望我有一些不错的笔记本电脑)。 Bamboo 似乎可以自己识别多点触控并将它们转换为“默认命令”,如 SCROLL 或 ZOOM。滚动(仅向上和向下)似乎无处不在(似乎模仿鼠标滚轮)。所以这是一个更普遍的问题,例如WPF 中定义的水平滚动.. 啊,我现在明白了。是的,Bamboo 驱动程序可能正在生成一些 Win32 消息,这些响应的应用程序(Paint 和 Firefox)正在监听这些消息。抱歉,我看不懂德语 :) 但是您能否通过该配置将事件类型分配给您正在执行的操作...我使用 Wacom 平板电脑以更简单的形式完成了此操作,例如将 Barrell 映射为鼠标右键。最好的办法是确定每个平板电脑操作生成的 WPF 事件类型,然后根据需要响应这些事件。 StylusButtonEventArgs 中隐藏了一些有用的信息,例如,如果您深入了解... 源或设备(我现在不记得是哪个)您将获得一个 Button id 值(我认为某处隐藏了 StylusButton.Id 或类似内容)。现在,即使调用了相同的事件处理程序,对于单点触控、多点触控等,这个值很可能会有所不同。所以是的,只要尝试所有的 Stylus 事件和 Mouse 事件并深入研究参数,你就会在某个地方找到一些识别不同操作的方法。在 Charles Petzolds Application = Code + Markup 中,有一小段代码用于捕获和检查所有不同的事件,因此这可能会帮助您入门。以上是关于通过触摸板(Bamboo)跟踪“命令”发送到 WPF 窗口的主要内容,如果未能解决你的问题,请参考以下文章
粤嵌gec6818开发板LED屏幕上画图(数组与内存映射的采用)换图片 电子相册 实现识别触摸坐标的识别等项目