2010-01-22 2 views
5

높은 dpi 설정에서 .NET Windows 응용 프로그램의 디스플레이에 문제가 있습니다.높은 DPI 문제

모든 양식은 AutoScaleMode = DPI로 설정되지만 모든 문제가 해결되지는 않습니다.

기본적으로 레이블의 크기가 커지면서 글꼴이 커지지 만 다른 컨트롤의 위치는 변경되지 않으며 다른 컨트롤이나 서로를 가리는 레이블로 끝납니다.

화면은 다음과 같이한다 : 높은 DPI에 http://www.manageinvest.com/good.jpg .. 그리고 그것을 이렇게보고 끝 : bad.jpg

어떤 제안 (이 그래서 난 단지 하나 개의 링크를 허용하고 내 첫 번째 게시물입니다)? 사전에

감사합니다,

크리스티안

답변

1

이이 문제를 해결할 수 없습니다.

하지만 레이블과 텍스트 컨트롤을 세로로 쌓아 놓아야한다는 점, 즉 레이블 옆에 텍스트 상자를 레이블 아래에 배치하는 것이 어렵다는 것을 알게되었습니다. 이것은 여러 언어에 대한 지원을 포함하여 여러 언어에 대한 지원을 포함하여 다른 언어의 텍스트 너비가 영어 텍스트보다 많을 수 있으므로 해결했습니다.

5

이론적으로 Winforms의 글꼴 및 DPI 비율은 자동입니다. 실제로 ...별로.

수평 확장보다 수직 확장에 더 잘 대처할 수 있지만 그다지 완벽하지는 않습니다.

  1. 전혀 디자이너를 사용하지 마십시오 : 당신은 두 가지 중 하나를 수행 할 때 내 경험에

    은, 스케일링은 신뢰할 수있다. 이것은 상당히 고통스럽지 만 레이아웃에 대한 필수적인 제어권을 제공합니다.

  2. 기본 제공 레이아웃 컨트롤 - 특히 FlowLayoutPanelTableLayoutPanel을 사용하십시오. 이 친구들은 당신의 가장 친한 친구입니다; 나는 거의하지 않고 Winforms에서 더 이상하지 않습니다.

귀하의 경우, 아마 # 2로 갈 것입니다. 화면 캡처에 따르면 TableLayoutPanelFlowLayoutPanel 컨테이너의 조합에 레이아웃을 적용하는 것이 매우 쉽다고 생각합니다. TableLayoutPanel 일 수도 있습니다.