2011-03-23 2 views
3

하나의 기본 폼이있는 Windows Forms 응용 프로그램 (.NET Framework 3.5에 대해 vs2010/C#으로 작성)이 있습니다. Win7의 100 % DPI 설정으로 설계되었습니다 (96 dpi라고 생각합니다). 컴퓨터를 150 %로 전환하면 모든 것이 정확하게 확장되고 모든 비율이 유지됩니다.다른 DPI 설정에서 실행되는 Windows Forms 응용 프로그램의 이상한 동작

그러나 125 %로 전환하면 일부 컨트롤이 갑자기 크기가 조정되지 않고 100 %처럼 크게 나타날 수 있습니다. 이것은 전체 레이아웃을 엉망으로 만들고 사용자로부터 일부 컨트롤을 숨 깁니다.

125 %와 150 % 설정간에 동작의 큰 차이에 대한 논리적 설명이 있습니까?

또한 이것을 테스트하는 더 빠른 방법이 있습니까? 내가 전환 할 때마다 다시 로그 오프하고 다시 로그인하면 즉시 성가 시게됩니다.

답변

2

양식의 AutoScaleMode을보십시오. 아마도 글꼴 설정하거나 DPI

+0

물론 그게 규모가됩니다. –

+0

글꼴로 설정되었습니다. 나는 그것을 Dpi로 바꿨지 만 그것은 아무것도 변하지 않는 것처럼 보였다. – Mels

0

존 알렌의 게시물에 추가됩니다 :

는 또한 AutoSizeMode를 사용하여, 양식이 성장하고 축소 할 수 있도록 할 수 있습니다.

+0

양식이 올바르게 커지고 크기가 조절됩니다. 그것에 대한 일부 컨트롤은 그렇지 않습니다. 컨트롤의 유형이 포함되도록 내 질문을 확장하겠습니다. – Mels

3

관찰 내용에 대한 간단한 설명은 없습니다.

과 관련하여
protected override void OnLoad(EventArgs e) { 
     this.Font = new Font(this.Font.FontFamily, this.Font.SizeInPoints * 120f/96f); 
     base.OnLoad(e); 
    } 
+0

아무 것도 변경되지 않습니다. – Mels

+0

가장 확실한 것은 약간의 테스트 프로젝트에서 시도해야합니다. 당신이 당신의 폼에 어떤 영향을 미치지 않는다는 것이 당신이 제대로 작동하도록하는 데 어려움을 겪고있는 이유가되어야합니다. –

+0

이것을 테스트하는 또 다른 방법은 여러 개의 가상 컴퓨터를 갖는 것입니다. –

0

"또한, 빠른 방법으로이 :

고통스러운 로그인 사이클을 통해 갈 필요없이이를 테스트하는 싼 방법은 온로드 방식으로 폼의 글꼴 속성을 변경하는 것입니다 이것을 시험해보십시오. 전환 할 때마다 다시 로그 오프하고 다시 로그인하면 즉시 성가 시게됩니다. "

가장 좋은 것은 다른 DPI 설정으로 가상 컴퓨터를 사용하는 것입니다. '실제'컴퓨터에서 응용 프로그램을 실행하기 만하면됩니다.