현재 가지고 있는 모니터가 2K 급인데, 화면 크기가 작으면  Hi-DPI 문제가 슬슬 보이기 시작한다. 웹 기반의 App 이나, 깔끔하게 MS에서 만든 Application 들은 문제가 없는데, 옛날에 개발된 프로그램이나, WinForm 기반으로 Hi-DPI 이슈를 대비하지 않은 Application의 경우, 보통 매우 쪼그만해져서 표시된다. 이게 2K 의 125% 나 150%, 모니터 사이즈가 27인치 정도 되면 그냥 저냥 봐줄 만 하긴 하다.


그런데, 3K에 13인치의 사이즈에서 200% 정도에 놓고 보기 시작하면 환장하게 된다.

200% 로 설정해서 다른 Hi-DPI 대응 Application들은 일반적으로는 글자가 큼직하게 잘 표시되지만, 옛날 프로그램의 경우 그에 따르지 않고 쪼그만하게 표시된다.

Visual Studio도 마찬가지인데, Hi-DPI로 WinForm Application 으로 개발하면, 이것도 매우 웃기는 짓이 된다. 100% 기준으로 디자인이 다 끝낸 WinForm을 Hi-DPI 지원되는 곳에서 다시 디자인을 할 때, Auto-Scale 옵션이 DPI나 Fonts 인 경우 제멋대로의 사이즈인 버튼과 텍스트 박스, 위치 정보들을 멍하니 구경하게 된다.

이 문제를 해결하는 방법은 Hi-DPI 일 때, Windows 자체가 적당히 확대해서 보여주는 기능이 있다. 이 기능을 활성화하면 유사한 사이즈로 맞추어 준다.

위에서 캡쳐한 이미지와 보면, 위의 캡쳐에서 해당 Application의 사이즈가 변화되지 않고 화면 해상도와 1:1로 맞추다 보니 쪼그매서 모두 다 보여주지만, 아래에서는 1:1이 아닌 Hi-DPI에 대응해서 억지로 늘려줘서 크기가 확커져 모두 캡쳐되지 않은 모습을 볼 수 있다.

물론 문제점이 있긴 하다. 약간 Blur 효과, 그러니까 좀 흐리게 표시되는 문제가 발생된다. 이 기능 처음 봤을 땐 야매다 뭐다 해서 참 비판을 많이 했는데, 막상 이런 Hi-DPI 때는 이 기능만이라고 해도 감지덕지 같았다.


기능의 활성화 방법은 레지스트리를 수정하는 방법이다.


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Users\\neohind\\AppData\\Local\\OpenLiveWriter\\app-0.6.2\\OpenLiveWriter.exe"="^ DPIUNAWARE"


위의 예제 처럼 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 위치에 프로그램이름을 Value Name으로하고, Value를 ^ DPIUNAWARE 로 설정한다.

그러면 위와 같이 좀 흐리지만 제대로 커진 화면을 볼 수 있다.

참고로 관리자 권한까지 넣을려면 ^ RUNASADMIN DPIUNAWARE 라고 Value에 넣어주면 된다.  참고로 저는 아래와 같이 입력해서 사용하고 있다.

2019. 12. 3. 오후 8:40

728x90

+ Recent posts