C# 3

[WPF] UWP의 API 사용하기

UWP는 모바일 앱들과 비슷하게 흉내내기 위해 기존 윈도우용 프로그램에는 없던 기능들이 다수 들어가 있다. (터치관련 최적화, 잉크캔버스, QR코드 관련 API, 토스트 메세지 등등) 그러나 UWP의 한계는 있다. 데스크탑용 프로그램을 개발하다 보면, 관리자 권한이 필요한 경우가 꽤 있다. Shell 스크립트를 이용해 명령을 내린다든지 하는 경우가 그 예이다. UWP에서는 관리자 권한을 이용할 수 없다. 정확히 말하자면 스토어에 업로드 하려면 관리자 권한으로 빌드가 안된다. 또한 폴더접근에 제한적이라든지.. 확실히 자유도가 떨어진다. 대부분의 UWP API는 관리자 권한으로 실행히 오히려 동작하지 않는 경우가 꽤 있다 (대표적으로 Share 기능) 따라서 기존 윈폼 혹은 WPF로 개발을 하면서, UWP의..

C# 2022.09.06

[WPF] 화면에 그림을 그리는 잉크캔버스

화면에 그림을 그린다는것은 생각보다 쉬운일이 아니다. 다만 WPF 그리고 UWP에서는 그 방안을 손쉽게 마련해준다. 하지만 입맛에 맛게 쓰기 위해서는 상당한 노력이 필요하다. 1. xaml 에 다음을 추가 이것만 추가해도 기본적으로 마우스 클릭으로 그림을 그릴 수 있다. 옵션에 대해 설명하자면, 첫번째 옵션은 디바이스에 알맞은 픽셀로 변경하는 옵션이고, 두번째 옵션은 안티엘리어싱을 켤지 끌지 여부의 옵션이다. 2. cs 코드에서 커스터마이징 - 그림을 그리는 항목의 세부 설정이 가능하다. 색상이라든지(투명도 포함), 두께라든지. 좀 더 세분화 하자면 그리는 Tip의 모양도 변경이 가능하다. DrawingAttributes tempAttr = new DrawingAttributes { Color = Col..

C# 2022.09.06

[Windows API] RawInput

터치스크린 혹은 터치패드의 멀티터치 이벤트를 wpf 에서는 처리가 잘 안된다. 이벤트가 있지만, 다중터치에 대한 값이 들어왔다 안들어왔다 한다. 윈도우 api중, RawInput 이라는것이 있다. 마치 이벤트 후킹하듯, RawInput값을 말그대로 Raw로 받아온다. 터치 패드, 터치스크인의 다중입력도 모두 받는다. 다만 세팅을 할때 Usage나 Usage Page값을 알아야지만 한다. 다행히 윈도우에서 설명이 나와있다. https://docs.microsoft.com/en-us/windows-hardware/drivers/hid/hid-architecture#hid-clients-supported-in-windows HID Architecture - Windows drivers The architect..

C# 2022.05.30
1