SurfaceListBox对触摸手势几秒钟没有响应

本文关键字:几秒 钟没 响应 触摸 SurfaceListBox | 更新日期: 2023-09-27 18:25:24

我有一个WPF程序,它有一个带两列的网格。第一个有按钮,第二个有嵌入ActiveX组件的WindowsFormsHost元素。一个按钮隐藏WindowsFormsHost-元素,并在第二列的屏幕上的同一位置显示SurfaceListBox。如果我在按下此按钮之前触摸了WindowsFormsHost元素,则从最后一次触摸到SurfaceListBox负责触摸手势大约需要8秒。

线程可能没有被阻塞,因为我可以使用另一列中的按钮,并将ListBox与鼠标一起使用。

如果我在8秒的等待时间内触摸ListBox,它将永远对触摸事件没有响应。因此,ListBox似乎不知何故没有得到触摸事件。

若我以编程方式创建另一个ListBox,它也不起作用,在8秒内,如果它被放在与WindowsFormsHost相同的屏幕上。

我注意到UIElement有一个方法CaptureTouch(),但我无法获得可以将其作为参数传递的TouchDevice。我已经为每个UIElement设置了ManipulationEnabled="true",并且不会触发TouchEvent

我还拼命地使用UpdateLayout()等,但没有运气。

所以我认为触摸手势在某种程度上是错误的,在等待时间后,它隐含地修复了路由,但有没有办法让触摸手势立即在ListBox中工作?

SurfaceListBox对触摸手势几秒钟没有响应

当我从程序中删除"启动屏幕键盘的焦点跟踪"时,问题消失了。

因此,如果其他人遇到同样的问题,http://www.infragistics.com/community/blogs/blagunas/archive/2013/12/17/showing-the-windows-8-touch-keyboard-in-wpf.aspx和SurfaceListBoxes并不适合彼此。