Windows Forms 구성 요소 추가

<add> 요소는 Windows Form 앱이 .NET Framework 4.7 이상에서 Windows Forms 앱에 추가된 기능을 지원하는지 여부를 지정하는 미리 정의된 키를 추가합니다.

구문

<System.Windows.Forms.ApplicationConfigurationSection>
  <add key="key-name" value="key-value" />
</System.Windows.Forms.ApplicationConfigurationSection>

특성 및 요소

다음 단원에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.

특성

attribute Description
key 필수 특성입니다. 특정 Windows Forms 사용자 지정 가능한 기능에 해당하는 미리 정의된 키 이름입니다.
value 필수 특성입니다. key에 할당할 값입니다.

key 특성 이름 및 연결된 값

key 이름 Description
"AnchorLayout.DisableSinglePassControlScaling" "true"|"false" 앵커된 컨트롤의 크기를 단일 패스로 조정할지 여부를 나타냅니다. 단일 패스 크기 조정을 사용하지 않도록 설정하려면 "true"이고, 그렇지 않으면 false입니다. 자세한 내용은 설명의 "단일 패스 확장" 섹션을 참조하세요.
"DpiAwareness" "PerMonitorV2"|"false" 애플리케이션이 DPI 인식인지 여부를 나타냅니다. Dpi 인식을 지원하도록 키를 "PerMonitorV2"로 설정합니다. 그렇지 않으면 "false"로 설정합니다. DPI 인식은 옵트인 기능입니다. Windows Forms의 높은 DPI 지원을 활용하려면 해당 값을 "PerMonitorV2"로 설정해야 합니다. 자세한 내용은 설명 섹션을 참조하세요.
"CheckedListBox.DisableHighDpiImprovements" "true"|"false" CheckedListBox 컨트롤이 .NET Framework 4.7에 도입된 확장 및 레이아웃 개선 사항을 활용하는지 여부를 나타냅니다. 크기 조정 및 레이아웃 향상을 옵트아웃하려면 "true"입니다. 그렇지 않으면 "false"입니다.
"DataGridView.DisableHighDpiImprovements" "true"|"false" .NET Framework 4.7에 도입된 DataGridView 컨트롤 크기 조정 및 레이아웃 개선 사항을 나타냅니다. DPI 인식을 옵트아웃하려면 "true"입니다. 그렇지 않으면 "false"입니다.
"DisableDpiChangedMessageHandling" "true"|"false" DPI 크기 조정 변경과 관련된 메시지 수신을 옵트아웃하려면 "true"이고, 그렇지 않으면 "false"입니다. 자세한 내용은 설명 섹션을 참조하세요.
"EnableWindowsFormsHighDpiAutoResizing" "true"|"false" DPI 크기 조정 변경으로 인해 Windows Forms 애플리케이션의 크기가 자동으로 조정되는지 여부를 나타냅니다. 자동 크기 조정을 사용하도록 설정하려면 "true"이고, 그렇지 않으면 false입니다.
"Form.DisableSinglePassControlScaling" "true"|"false" 단일 패스로 Form 크기가 조정되는지 여부를 나타냅니다. 단일 패스 크기 조정을 사용하지 않도록 설정하려면 "true"이고, 그렇지 않으면 false입니다. 자세한 내용은 설명의 "단일 패스 확장" 섹션을 참조하세요.
"MonthCalendar.DisableSinglePassControlScaling" "true"|"false" 컨트롤의 MonthCalendar 크기를 단일 패스로 조정할지 여부를 나타냅니다. 단일 패스 크기 조정을 사용하지 않도록 설정하려면 "true"이고, 그렇지 않으면 false입니다. 자세한 내용은 설명의 "단일 패스 확장" 섹션을 참조하세요.
"Toolstrip.DisableHighDpiImprovements" "true"|"false" ToolStrip 컨트롤이 .NET Framework 4.7에 도입된 확장 및 레이아웃 개선 사항을 활용하는지 여부를 나타냅니다. DPI 인식을 옵트아웃하려면 "true"입니다. 그렇지 않으면 "false"입니다.

자식 요소

없음

부모 요소

요소 Description
<System.Windows.Forms.ApplicationConfigurationSection> 새 Windows Forms 애플리케이션 기능에 대한 지원을 구성합니다.

설명

.NET Framework 4.7부터는 <System.Windows.Forms.ApplicationConfigurationSection> 요소를 사용하여 Windows Forms 애플리케이션을 구성해 최신 .NET Framework 릴리스에 추가된 기능을 활용할 수 있습니다.

<System.Windows.Forms.ApplicationConfigurationSection> 요소를 사용하면 각각 특정 구성 설정을 정의하는 하나 이상의 자식 <add> 요소를 추가할 수 있습니다.

Windows Forms 높은 DPI 지원에 대한 개요는 Windows Forms 높은 DPI 지원을 참조하세요.

DpiAwareness

Windows 10 Creators Edition으로 시작하는 Windows 버전 및 .NET Framework 4.7로 시작하는 .NET Framework의 대상 버전에서 실행되는 Windows Forms 앱은 .NET Framework 4.7에 도입된 높은 DPI 개선 사항을 활용하도록 구성할 수 있습니다. 추가 설정은 다음과 같습니다.

  • Windows Forms 애플리케이션이 시작된 후 사용자가 DPI 또는 배율 인수를 변경하는 동적 DPI 시나리오를 지원합니다.

  • MonthCalendar 컨트롤 및 CheckedListBox 컨트롤과 같은 여러 Windows Forms 컨트롤의 크기 조정 및 레이아웃이 향상되었습니다.

높은 DPI 인식은 선택 기능입니다. 기본적으로 DpiAwareness의 값은 false입니다. 애플리케이션 구성 파일에서 이 키의 값을 PerMonitorV2로 설정하여 Windows Forms의 DPI 인식 지원을 선택할 수 있습니다. DPI 인식을 사용하도록 설정하면 모든 개별 DPI 기능도 사용하도록 설정됩니다. 추가 설정은 다음과 같습니다.

  • DisableDpiChangedMessageHandling 키로 제어되는 DPI 변경 메시지

  • EnableWindowsFormsHighDpiAutoResizing 키로 제어되는 동적 DPI 지원

  • 개별 Form 컨트롤의 경우 Form.DisableSinglePassControlScaling, 고정된 컨트롤의 경우 AnchorLayout.DisableSinglePassControlScaling 키, MonthCalendar 컨트롤의 경우 MonthCalendar.DisableSinglePassControlScaling 키로 제어되는 단일 패스 컨트롤 크기 조정

  • CheckedListBox 컨트롤의 경우 CheckListBox.DisableHighDpiImprovements 키, DataGridView 컨트롤의 경우 DataGridView.DisableHighDpiImprovements 키, ToolStrip 컨트롤의 경우 Toolstrip.DisableHighDpiImprovements 키에 의해 제어되는 높은 DPI 스케일링 및 레이아웃 개선

DpiAwarenessPerMonitorV2로 설정하여 제공되는 단일 기본 옵트인 설정은 일반적으로 새 Windows Forms 애플리케이션에 적합합니다. 그러나 애플리케이션 구성 파일에 해당 키를 추가하여 개별 높은 DPI 개선 사항을 옵트아웃할 수 있습니다. 예를 들어 동적 DPI 지원을 제외한 모든 새로운 DPI 기능을 활용하려면 애플리케이션 구성 파일에 다음을 추가합니다.

<System.Windows.Forms.ApplicationConfigurationSection>
   <add key="DpiAwareness" value="PerMonitorV2" />
   <!-- Disable dynamic DPI support -->
   <add key="EnableWindowsFormsHighDpiAutoResizing" value="false" />
</System.Windows.Forms.ApplicationConfigurationSection>

일반적으로 프로그래밍 방식으로 처리하도록 선택했기 때문에 특정 기능을 옵트아웃합니다.

Windows Forms 애플리케이션에서 높은 DPI 지원을 활용하는 방법에 대한 자세한 내용은 Windows Forms 높은 DPI 지원을 참조하세요.

DisableDpiChangedMessageHandling

.NET Framework 4.7부터 Windows Forms 컨트롤은 DPI 조정 변경과 관련된 여러 이벤트를 발생시킵니다. 여기에는 DpiChangedAfterParent, DpiChangedBeforeParentDpiChanged 이벤트가 있습니다. DisableDpiChangedMessageHandling 키 값은 이러한 이벤트가 Windows Forms 애플리케이션에서 발생하는지 여부를 결정합니다.

단일 패스 크기 조정

단일 또는 다중 패스 크기 조정은 사용자 인터페이스의 인지된 응답성과 크기 조정 시 사용자 인터페이스 요소의 시각적 모양에 영향을 줍니다. .NET Framework 4.7부터는 Windows Forms 단일 패스 크기 조정을 사용합니다. 이전 버전의 .NET Framework에서는 크기 조정이 다중 패스를 거쳐 수행되었기 때문에 일부 컨트롤이 필요 이상으로 크기가 조정되었습니다. 단일 패스 크기 조정은 앱이 이전 동작에 의존하는 경우에만 사용하지 않도록 설정해야 합니다.

참고 항목