Controls.PreviewContactDown, PreviewContactUp 및 PreviewContactChanged 이벤트를 사용하여 Surface에 배치, 제거 및 이동되는 태그가 지정된 항목을 캡처합니다.이 항목은 제공되는 시뮬레이터 응용 프로그램에서 잘 작동합니다 표면.Surface 컨트롤에 대한 OnContactDown 이벤트에 지연 추가
태그가 지정된 항목을 너무 빨리 이동 한 경우 카메라는 실제로 태그의 초점을 잃고 제거 된 것으로 가정 한 다음 이동을 멈 추면 다시 캡처합니다. 그것은 우리 고객들에게 매우 나쁜 경험을 제공합니다.
내가 제안한 것은 태그가 지정된 항목 이벤트에 응답하지만 지연 후까지 이벤트 처리기를 시작하지 않는 새 이벤트를 작성하거나 작성하는 방법입니다. 즉, "ContactUp"이 (가) 발생하면 100ms를 기다리십시오. 그런 다음 이벤트 핸들러를 실행합니다. 이상적으로는, 즉
<Panel local:TagDown="TagDownEventHandler" />
이러한 이벤트 핸들러를 정의하기 위해 사용하는 별도의 연결된 속성을 사용할 수있을 거라고 우리가 얻을 수있는 경우는 ICommand의 대신 더 나은 것 이벤트 핸들러의 객체를 사용하는.
TagVisualizer은 쉽게 우리가 구체적으로 우리가 최선을 다하고 어떤 태그를 알 수 없기 때문에 작동하지 않습니다, 나는 TagVisualizer가 듣고 어떤 태그 값을 지정해야합니다 확신합니다 - 클라이언트 00-FF 태그의 하위 집합을 사용할 수 있습니다. 동시에 TagVisualizer는 실제로 같은 문제를 겪을 수 있습니다. Dev 표면 단위에서 일어나는 일은 태그가있는 객체를 적당한 속도로 표면 전체를 "드래그"하여 실제로 해당 객체의 추적을 삭제하는 것입니다. 내부 카메라의 하드웨어 제한이 다른 것보다 더 중요하다고 생각합니다. – RTigger
어떤 태그인지 모르는 경우, 모두 일치하는 방법 (프로그래밍 방식으로도 가능)은 무엇입니까? 문제 해결됨. 예, 접촉을 놓는 것은 근본적인 문제입니다 ...하지만 TV가 즉시 비주얼을 제거하지 않기 때문에 TV가 돌아 다니고 있다고 말했기 때문에 움직이는 동안 접촉이 끊어지면 다시 감지하여 부드럽게 추적합니다. – Schneider