2014-10-03 9 views
0

두 개의 열이있는 눈금이있는 WPF 프로그램이 있습니다. 첫 번째 단추에는 단추가 있고 두 번째 단추에는 ActiveX 구성 요소가 포함 된 WindowsFormsHost 요소가 있습니다. 하나의 버튼은 WindowsFormsHost 요소를 숨기고 화면의 두 번째 열의 동일한 위치에 SurfaceListBox을 표시합니다. 이 버튼을 누르기 바로 전에 WindowsFormsHost 요소를 터치 한 경우 마지막 터치에서 약 8 초가 걸려 SurfaceListBox이 터치 제스처를 담당하게됩니다.SurfaceListBox가 몇 초 동안 터치 제스처에 응답하지 않습니다.

다른 열의 단추를 사용할 수 있고 마우스로 ListBox을 사용하므로 스레드가 차단되지 않은 것 같습니다.

터치 이벤트에 대해 응답하지 않는 경우 (터치 대기 시간이 8 초 이내 인 경우), ListBox이 계속 표시됩니다. 그래서 어떻게 든 ListBox은 터치 이벤트를 얻지 못합니다.

ListBox을 프로그래밍 방식으로 만들면 WindowsFormsHost보다 화면 상에있는 경우 8 초 동안 작동하지 않습니다.

나는 UIElement에 대해 이라는 메쏘드가 있음을 알았지 만, 매개 변수로 전달할 수있는 TouchDevice을 잡을 수는 없습니다. 모든 UIElement에 대해 ManipulationEnabled="true"을 설정했으며 TouchEvent이 해고됩니다.

필자도 필사적으로 UpdateLayout() 등을 사용했습니다.

터치 제스처가 어떻게 든 잘못 라우팅되었다고 생각합니다. 대기 시간이 지나면 암시 적으로 라우팅이 수정되었지만 터치 동작을 ListBox에서 즉시 수행 할 수있는 방법이 있습니까?

+1

안녕하십니까. [이 가이드] (http://stackoverflow.com/help/how-to-ask)를 읽어 보시기 바랍니다. 관련 코드, xaml 및 정보를 포함하고, 그것은 좋은 대답과 upvotes을 받고 더 나은 기회입니다 :) –

답변