해상도라고 하기에는 애매한 C#의 WinForms 혹은 WPF로 생성된 응용 프로그램을 높은 DPI 디스플레이에서 흐릿하게 보일 경우 선명하게 보이게 하기 위해 들어가는 옵션이라고 이해했다.
마이크로소프트 공식 문서에서 내용을 확인 했지만 자세하게 알기 어려워 스택오버플로어를 확인해보니 해당 내용을 알 수 있는 질문 글이 있었다.
automatic high DPI adaptation of running winforms app
I have several applications written with winforms using .net 6 and visual basic, all start very sharp even with high dpi display, but if the applications are started and I try to change the dpi set...
stackoverflow.com
해당 기능은 .NET 6 이상 버전에만 적용되며 다음과 같은 옵션을 제공한다.

.NET 6 버전에서는 별도 설정을 하지 않으면 SystemAuare 값이 기본 값으로 지정되어 있지만 .NET 8버전 이상에서는 PerMonitorV2 값이 기본값으로 설정되어있다. 해당 내용은 하단 .NET 8 새로운 기능 에서 확인할 수 있다.
Windows Forms .NET 8의 새로운 기능 - Windows Forms .NET
.NET 8용 Windows Forms의 새로운 기능에 관해 알아봅니다. Windows Forms. .NET은 .NET 7에 비해 더 새롭고 향상된 기능을 제공합니다.
learn.microsoft.com
따라서 .NET 6버전을 사용한다고 하면 높은 DPI을 사용하는 모니터에서 작성한 어플리케이션이 흐릿하게 보인다면 PerMonitorV2를 사용면 좋다고 한다.
설정하는 방법은 다음과 같다.

1. 솔루션 탐색기의 적용하고자 하는 프로젝트를 더블클릭한다.
2. <PropertyGroup> 태그 안에 <ApplicationHighDpiMode>PerMonitorV2</ApplicationHighDpiMode> 를 입력한다.
제가 사용하는 프로젝트는 .NET 8 버전을 사용하기에 넣을 필요는 없지만 해당 값을 적용한다면 다음과 같습니다.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UseWPF>true</UseWPF>
<ApplicationHighDpiMode>PerMonitorV2</ApplicationHighDpiMode>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" />
</ItemGroup>
</Project>
더 자세한 내용은 마이크로소프트 링크를 참조 바랍니다.
Microsoft.NET.Sdk.Desktop의 MSBuild 속성 - .NET
WPF 및 WinForms가 포함된 .NET 데스크톱 SDK에서 이해하는 MSBuild 속성 및 항목의 참조입니다.
learn.microsoft.com
'c# > helper' 카테고리의 다른 글
| c# app.manifest를 이용한 DPI 설정 (0) | 2024.04.22 |
|---|---|
| c# ApplicationManifest 관리자 권한 설정 (0) | 2024.04.22 |
| c# WPF 태블릿 스타일러스 입력 비활성 (0) | 2024.04.05 |
| c# 공인 ip 가져오기 / c# public ip 가져오기 (0) | 2024.04.02 |
| c# 로컬 ip 가져오기 / c# local ip 가져오기 (0) | 2024.04.02 |