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

时间:2014-10-03 11:54:39

标签: c# wpf listbox touch windowsformshost

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

线程可能未被阻止,因为我可以使用另一列中的按钮,并使用鼠标ListBox

如果我在8秒的等待时间内触摸它,ListBox对触摸事件永远没有反应。所以似乎某种方式ListBox没有得到触摸事件。

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

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

我也拼命地使用UpdateLayout()等没有运气。

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

1 个答案:

答案 0 :(得分:0)

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

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