2011-01-18 3 views
0

내 응용 프로그램은 파일에서 정보를로드 한 다음 양식의 x 페이지 양에 컨트롤을 만듭니다.컨트롤 (트랙 바, 여러 줄의 텍스트 상자 및 레이블)을 다른 DPI의 폼에 추가 - C#

내 문제는 사용자가 표준 Windows 96에 대해 다른 DPI를 사용하면 추가 된 컨트롤이 서로 겹치게된다는 것입니다. 폼의 초기 컨트롤은 괜찮습니다.

사용자 컴퓨터가 실행되는 모든 것이 아니라 96 DPI로 수정되는 컨트롤을 어떻게 설정할 수 있습니까?

매우 어렵다면 사용자 DPI가 무엇인지 볼 수있는 방법이 있습니까? 그런 다음 96DPI 등을 사용해야한다는 경고를 던질 수 있습니다.

감사의 말 또는 저에게 줄 수있는 조언을 해주십시오!

답변

0

그냥 내가 쓴 내 자신의 질문에 대답하고 내 폼로드 이벤트에 넣어하기 : 없음

 Graphics formGraphics = this.CreateGraphics(); 
     if ((formGraphics.DpiX != 96) || (formGraphics.DpiY != 96)) 
     { 
      MessageBox.Show("You are attempting to run this application in an unknown DPI. This application has been designed for Normal size (96 DPI), you may experience some display issues if you continue to use your current settings. Please change your Display settings back to normal size through your control panel to ensure you don't experience any problems. Thank you.", 
      "Warning", 
      MessageBoxButtons.OK, 
      MessageBoxIcon.Exclamation, 
      MessageBoxDefaultButton.Button1); 
     } 
1

Windows.Forms를 사용한다고 가정합니다. 속성 AutoScaleMode을 사용하여 각 GUI 컨트롤의 확대/축소 방법을 제어 할 수 있습니다. 선택할 수있는 옵션이 더 많으므로 최선의 방법을 시도하거나 this article in MSDN을 읽어 Windows.Forms의 컨트롤 확대 원칙에 대한 자세한 정보를 얻을 수 있습니다.

+0

설정 AutoScaleMode을. 감사. – RHodgett