2011-02-18 2 views
2

WPF 기반의 Microsoft Surface 1.0 SDK 프로젝트에서 전체 화면 (가상 터치 패드)과 일치하도록 화면의 작은 부분에 캡처 된 연락처를 변환하고 싶습니다.시뮬레이터없이 표면 테이블 어플리케이션에 시뮬레이션 된 접점을 생성하려면 어떻게해야합니까?

연락처를 캡처하고 위치와 방향을 변환 한 후 이벤트 대기열로 다시 보내고 싶습니다. 나는 이미 "새로운 Contact()"를 만들거나 "ReadOnlyContactCollection"(이미 이름이 말하는 것처럼)을 변경하는 방법이 없다고 생각했습니다. 만에,

private void OnContactDown(object sender, ContactEventArgs e) 
{ 
    base.OnContactDown(e); 
    e.Contact.Capture(this); 

    // transform the contact's center and orientation 
    // and write them back into e.Contact via own private method 
    // e.Contact = transformContact(e.Contact); 

    // keep transformed contact in the event queue 
    // so it can be processed at it's new position 
    e.Handled = false; 
} 

나의 다음 생각은 SimulatedContacts을 만들 시뮬레이터 및 자동화 사용할 수 있도록했지만, 슬프게도이 표면 테이블 자체에서 작동하지 않습니다 : 여기에

는 내가하려고했던거야 시뮬레이터.

시뮬레이터를 사용하지 않고 표면에서 인식 할 수 있도록 "가상"접촉 (원시 이미지에는 존재하지 않음)을 보내는 방법이 있습니까? SurfaceInput.exe는 인식 된 연락처를 어떻게 전송합니까?

답변

0

Surface v1은 공식적으로 WPF 4.0을 지원하지 않지만 다른 사람들은 Surface v1 입력을 받아 WPF 4.0과 함께 제공되는 표준 & 확장 가능 터치 API로 라우팅하는 방법을 알고 있습니다. Surface 입력을 WPF 4.0 입력 이벤트로 변환하는 사용자 정의 "터치 장치"를 만들기 위해 http://nui.joshland.org/2010/07/how-to-write-surface-applications-with.html을 살펴보십시오. 같은 접근법을 따라 가짜 터치를 전달하기 위해 자신 만의 또 다른 "터치 장치"를 만들 수 있습니다.

+0

합리적인 해결책으로 보입니다. Surface v1에 Win7을 먼저 설치 한 다음 MultiTouchVista 및 Surface Toolkit for Windows Touch 또는 Blake.NUI를 사용하여 Surface Input을 Windows Touch 이벤트로 변환 해 보겠습니다. – HeBu

+0

Win7은 필요하지 않습니다. 확실히 Blake.NUI와 함께 ... 그것은 Win7로 Surface 입력을 펌핑하는 더 길고 복잡한 경로를 취하는 것이 아니라 WPF와 직접 상호 작용합니다. MTV는 Surface가 아닌 Surface 응용 프로그램에서 Surface 입력을 사용하려는 경우에 적합하지만 다른 시나리오에서는 적합하지 않습니다. –

+0

@Robert Levy : Blake.NUI 응용 프로그램을 실행하기 위해 Windows Touch 용 Surface Toolkit을 설치해야합니까? 블레이크 (Blake.NUI)와 함께 제공되는 Surface TestApplication을 실행하려고 시도했지만, 사용자 32 DLL에서 RegisterTouchWindow를 찾을 수 없다고 말합니다. Surface Toolkit 설치 프로그램을 패치하고 Vista에 설치해야합니까? – HeBu

관련 문제