다음을 통해 공유


최상위 양식은 최소 및 최대 크기를 DPI로 조정합니다.

이제 Windows Forms의 최상위 양식은 HighDpiMode.PerMonitorV2 모드에서 실행될 때 모니터의 DPI(인치당 도트 수)에 따라 MinimumSizeMaximumSize 값의 크기를 조정합니다.

도입된 버전

.NET 8 미리 보기 1

이전 동작

.NET 8에서는 애플리케이션 DPI 모드와 양식이 렌더링되는 모니터의 DPI에 관계없이 최상위 양식의 MinimumSizeMaximumSize 값이 일정하게 유지되었습니다. 이로 인해 최상위 양식의 크기 조정 제한 사항이 발생하는 경우도 있었습니다.

.NET 7에서 이 동작을 옵트인할 수도 있습니다. 옵트인하려면 권장 작업 섹션에 설명된 System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi 런타임 구성 옵션을 설정합니다.

새 동작

.NET 8부터 최상위 양식은 HighDpiMode.PerMonitorV2 모드에서 실행될 때 모니터의 DPI에 따라 MinimumSizeMaximumSize 값의 크기를 조정합니다. 앱 동작은 다음과 같은 방식으로 변경될 수 있습니다.

  • 양식의 최소 및 최대 크기가 변경되면 런타임 종속성이 영향을 받을 수 있습니다.
  • 새로운 MinimumSizeChangedMaximumSizeChanged 이벤트가 발생할 수 있습니다.
  • 이제 크기가 조정된 양식 크기에 최소 및 최대 크기에 대한 새로운 제약 조건 값이 있습니다.

범주 변경

이 변경 사항은 동작 변경입니다.

변경 이유

이 변경은 높은 DPI 모니터에서 Windows Forms 사용자 환경을 개선하려는 광범위한 활동의 일부입니다. 이를 통해 개발자는 모니터의 DPI를 고려하지 않고도 최상위 양식의 최소 및 최대 크기를 설정할 수 있습니다.

새로운 동작이 문제가 되는 경우 runtimeconfig.json 파일에서 System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpifalse로 설정하여 옵트아웃할 수 있습니다.

runtimeconfig.template.json 템플릿 파일:

{
   "configProperties": {
      "System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi": false
   }
}

[appname].runtimeconfig.json 출력 파일:

{
   "runtimeOptions": {
      "configProperties": {
         "System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi": false
      }
   }
}

영향을 받는 API

해당 없음

참고 항목