- VS Form -> View Designer 에서 UI 작성중일때 발생
- 경고 메시지
Automatic scaling is turned off. WPF/UWP XAML designers might not display correctly, Restart Visual Studio with automatic scaling
//
Scaling on your main display is set to 150%. Restart Visual Studion with 100% scaling. Help me decide
//
- 원인
현재 윈도우 화면 배율 설정이 100%가 아닌 경우 발생
주의! 이 상태에서 디자인한 윈도우 폼은 DPI가 다른 환경에서 실행시 폼 안의 요소들이 겹쳐지거나 폼을 벗어날 수 있음
참고 : 100%(96DPI), 125%(120DPI), 150%(144DPI)
- 처리
방법1 : 윈도우 화면 비율을 100%로 변경
방법2 : VS(Visual Studio)에 윈도우 스케일 적용 하지 않고 실행하기
devenv /noScale
- 레지스트리 수정 => 나는 적용이 안됨
- 사용하는 devenv.exe의 경로 확인
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.exe" /t REG_SZ /d "DPIUNAWARE" /f
방법3 : 설정에서 알림 끄기
Tools -> Options -> Windows Forms Designer -> DPI Scaling Notifications : False
//-------------------------------------
// 참고
Disable DPI-awareness to address scaling issues with Windows Forms Designer in Visual Studio
https://docs.microsoft.com/en-us/visualstudio/designers/disable-dpi-awareness?view=vs-2022
모니터당 DPI 인식 WPF 애플리케이션 개발
WinForms Scaling at Large DPI Settings–Is It Even Possible?
https://www.telerik.com/blogs/winforms-scaling-at-large-dpi-settings-is-it-even-possible-
매니페스트 파일과 app.config 를 수정해도 메시지는 사라지지 않음
- C# 매니페스트(Manifest) 파일 생성 방법
Project -> 우클릭 Propertes -> Security -> Enavle ClickOnce security settings 체크
프로젝트의 Propertes 폴더에 app.manifest 존재
//-------------------------------------
- Properties\app.manifest 파일 수정(파일 샘플)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 compatibility -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
<asmv3:application>
<asmv3:windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
//-------------------------------------
- app.config 파일 수정
<System.Windows.Forms.ApplicationConfigurationSection>
<add key="DpiAwareness" value="PerMonitorV2" />
</System.Windows.Forms.ApplicationConfigurationSection>
'Code' 카테고리의 다른 글
ASCII 코드표 (0) | 2022.04.26 |
---|---|
git 에러 fatal: unsafe repository owned by someone else 해결 방법 (0) | 2022.04.15 |
비주얼 스튜디오 프로젝트 삭제할 임시파일 리스트 (0) | 2022.03.11 |
git stash 사용법 (0) | 2021.09.11 |
리눅스 보안 SELinux , AppArmor 비교 (0) | 2021.07.12 |