터치스크린 혹은 터치패드의 멀티터치 이벤트를 wpf 에서는 처리가 잘 안된다.
이벤트가 있지만, 다중터치에 대한 값이 들어왔다 안들어왔다 한다.
윈도우 api중, RawInput 이라는것이 있다. 마치 이벤트 후킹하듯, RawInput값을 말그대로 Raw로 받아온다.
터치 패드, 터치스크인의 다중입력도 모두 받는다.
다만 세팅을 할때 Usage나 Usage Page값을 알아야지만 한다.
다행히 윈도우에서 설명이 나와있다.
HID Architecture - Windows drivers
The architecture of the HID driver stack in Windows is built on the class driver named hidclass.sys.
docs.microsoft.com
RawInput API를 이용하여 데이터를 받을 장비값 세팅을 할때 위의 사이트를 참조하여 맞는 Usage, Usage Page값을 넣자.
RawInput API를 이용해 동작하는 샘플 코드는 : https://github.com/emoacht/RawInput.Touchpad
GitHub - emoacht/RawInput.Touchpad: Sample to capture inputs from Precision Touchpad by Raw Input API
Sample to capture inputs from Precision Touchpad by Raw Input API - GitHub - emoacht/RawInput.Touchpad: Sample to capture inputs from Precision Touchpad by Raw Input API
github.com
이 소스파일의 TouchpadHelper.cs -> RegisterInput에서 device의 인자값을 변경하고 돌려보면 된다.
'C#' 카테고리의 다른 글
[WPF] UWP의 API 사용하기 (0) | 2022.09.06 |
---|---|
[WPF] 화면에 그림을 그리는 잉크캔버스 (0) | 2022.09.06 |