2014-09-25 5 views
0

저는 C# 프로그래밍 초급자입니다. 내가 만든 이전 프로그램은 Surface Pro에서 클릭 이벤트로 터치 입력을받을 수 있습니다. 그래서 멀티 터치 입력을 얻을 수 없습니다. C#으로 응용 프로그램을 작성할 때 Windows Surface Pro에서 멀티 터치 입력 (화면상의 위치)을 얻으려면 어떻게해야합니까?C#으로 응용 프로그램을 작성할 때 Windows Surface Pro에서 터치 입력 (화면상의 위치)을 얻으려면 어떻게해야합니까?

나는 터치 클래스를 사용할 수 있다고 들었지만 사용 방법을 모른다. ... 나는 2 주 동안 이걸로 고민 중이지만 아무런 진전을 이루지 못했다.

터치 클래스 사용 방법을 구체적으로 설명 할 수있는 사람은 누구입니까? Surface Pro 터치 패널에서 입력 값을 터치 할 수있는 다른 제안 사항이 있습니까?

답변

1

WPF을 프로그래밍한다고 가정합니다. 여러 손가락을 동시에 터치 스크린 경우

등록은 UIElement.TouchDown 이벤트, 예를 들어, MainWindow를 생성자에서 TouchDown 이벤트는 각 손가락에 대한 해고,

this.TouchDown += MainWindow_TouchDown; 

를 추가합니다.

이벤트 처리기에 인수로 전달 된 TouchEventArgs에서 터치 위치 (화면을 기준으로)를 가져올 수 있습니다.

void MainWindow_TouchDown(object sender, TouchEventArgs e) 
{ 
    TouchPoint pointFromWindow = e.GetTouchPoint(this); //relative to Top-Left corner of Window 
    Point locationFromScreen = this.PointToScreen(new Point(pointFromWindow.Position.X, pointFromWindow.Position.Y)); //translate to coordinates relative to Top-Left corner of Screen 
} 

참고 : .NET 4.0이 필요합니다, 윈도우 8이 사전 설치된 .NET 4.0과 함께 제공. Windows 7에서 실행중인 경우 Windows 7을 설치해야합니다.

+0

안녕하십니까. 의견을 보내 주셔서 감사합니다. 그건 그렇고, WPF를 사용하는 유일한 방법은 무엇입니까? WPF 환경에서 구현할 경험이 없기 때문에 다른 옵션이 있습니까? –

+1

'Winform' 응용 프로그램에서는'WndProc'을 오버라이드하고 WM_TOUCH 이벤트를 찾아야합니다. 터치 포인트 위치를 얻는 좋은 예가 있습니다 (http://msdn.microsoft.com/en-us/library/windows/desktop/dd940546(v=vs.85).aspx) – kennyzx

+0

Touch 클래스는 어떻습니까? https://msdn.microsoft.com/en-us/library/system.windows.input.touch(v=vs.110).aspx –