>백엔드 개발 >C++ >높은 DPI 환경에서 자동 조정을 위해 WinForms 컨트롤 크기 조정을 어떻게 최적화할 수 있습니까?

높은 DPI 환경에서 자동 조정을 위해 WinForms 컨트롤 크기 조정을 어떻게 최적화할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-19 08:26:10327검색

How Can I Optimize WinForms Control Scaling for Auto-Adjustment in High-DPI Environments?

WinForms 컨트롤 스케일링: 높은 DPI 환경에서 최적의 자동 조정

일반적으로 WinForms는 높은 DPI 환경에서 자동 크기 조정 기능이 제한되어 있다고 알려져 있지만 실제로 .NET 2.0 이상에서는 자동 크기 조정 기능이 크게 향상되었습니다. 그러나 이러한 개선 사항을 최대한 활용하려면 개발자는 특정 디자인 지침을 따라야 합니다.

자동 크기 조정을 지원하지 않는 컨트롤

일부 컨트롤에는 크기 조정에 제한이 있습니다.

  • 레이블: AutoSize 속성이 비활성화되고 글꼴이 상속된 글꼴인 경우 크기 조정 오류를 방지하려면 Font 속성을 ​​명시적으로 설정하세요.
  • ListView: 열 너비 조정을 처리하려면 양식의 ScaleControl 메서드를 재정의하세요.
  • SplitContainer: Panel1MinSize, Panel2MinSizeSplitterDistance 속성을 ​​설정하지 마세요.
  • TextBox: MultiLine 속성이 활성화되고 글꼴이 상속된 글꼴인 경우 Font 속성을 ​​명시적으로 설정합니다.
  • ToolStripButton: CreateGraphics.DpiX.DpiY에 따라 ToolStrip.ImageScalingSize을 조정합니다.
  • PictureBox: SizeMode 속성이 Zoom 또는 StretchImage으로 설정되어 있는지 확인하세요.
  • TreeView: CreateGraphics.DpiX.DpiY을 기반으로 ImageList.ImageSize을 설정합니다.
  • 양식: 고정 크기 양식을 만든 후 양식 크기를 수동으로 조정합니다.

디자인 가이드라인

1. 컨테이너 관리

  • 모든 컨테이너 컨트롤의 AutoScaleMode 속성을 ​​Font으로 설정합니다.
  • 96dpi와 기본 MS Sans Serif 글꼴을 가정하고 AutoScaleDimensions 속성을 ​​new System.Drawing.SizeF(6F, 13F)에 할당합니다(필요한 경우 조정).

2. 디자이너 구성

  • 96dpi로 디자인하세요. Visual Studio에서 높은 DPI 배율 동작을 "시스템"으로 재정의합니다.
  • 컨테이너 컨트롤의 AutoSize 속성이 활성화되어 있는지 확인하세요.

3. 글꼴 관리

  • Font 속성은 리프 컨트롤 수준이나 기본 양식의 생성자(애플리케이션 전체 기본값의 경우)에서만 설정하세요.
  • 기본 형식에서 Font을 변경하면 AutoScaleDimensions이 그에 따라 다시 계산됩니다.

4. 도킹 및 앵커링

  • 컨트롤을 UserControl에 직접 고정하는 것을 피하세요. 대신 Panel이나 다른 컨테이너를 사용하세요.
  • Dock 또는 Anchor Right 대신 Bottom 속성을 ​​사용하세요.

5. 동적으로 추가된 컨트롤

  • 동적 컨트롤을 추가하기 전에 레이아웃을 일시 중지하고 AutoScaleDimensionsAutoScaleMode을 설정한 다음 레이아웃을 다시 시작하세요.

6. 기본 클래스 및 AutoScale

  • 상속된 기본 클래스의 AutoScaleMode 속성은 Inherit으로 설정되어야 합니다. 다른 값으로 설정하면 자동 크기 조정이 비활성화될 수 있습니다.

7. 창 크기 제한

  • 정적 MaxSize 속성을 ​​사용하지 마세요. 생성자 또는 OnLoad 이벤트에서 MinSizeMaxSize을 크기 조정된 차원으로 설정합니다.
  • 양식 크기가 1000x680 ClientSize(디자이너에서는 994x642)를 초과하지 않는지 확인하세요.

위 내용은 높은 DPI 환경에서 자동 조정을 위해 WinForms 컨트롤 크기 조정을 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.