2013-05-01 2 views
0

.NET C#을 사용하여 Windows Forms 응용 프로그램을 개발 중이며 지금까지 관련된 모든 코드가 문제가 없습니다. 하지만 UI에 문제가 있습니다. 연결 속도를 표시하기 위해 UI에서 사용하고 있지만 한 가지 문제가 있음을 나타내는이 계기가 있습니다. Visual Studio 2010을 사용하여 워크 스테이션에서 응용 프로그램을 개발하고 디자인 한 다음 Visual Studio 2012를 사용하여 다른 워크 스테이션에서 응용 프로그램을 개발할 때 게이지와 같은 일부 도구와 위젯은 더 이상 UI에서 동일한 위치를 갖지 않는 것처럼 보입니다.Windows Forms C# 도구 위치가 동일하지 않음

해상도가 변경된 것처럼 보이지만 그렇지 않습니다. 두 워크 스테이션 모두 1920 x 1080입니다. 폼의 창 크기가 고정되어 있으며 변경하거나 최대화 할 수 없습니다. 컨트롤의 대부분은 두 워크 스테이션 모두에서 잘 맞지만이 게이지는 좋지 않습니다.

중요한 이유 중 하나는 게이지가 배치 된 페이지의 배경이 배경 오버레이 용 게이지를 사용하기 때문에 두 워크 스테이션에서 정확히 같은 지점에 놓이는 것이 매우 중요하기 때문입니다. 이 문제가 발생하는 이유는 무엇입니까? 문제는 위젯 또는 기본 양식에 대한 일부 설정과 더 비슷하다고 생각하지 않습니다.

+3

봇 워크 스테이션 DPI 설정을 확인 했습니까? – Kenneth

답변

1

FormAutoScaleMode 속성을 확인하십시오. 이 속성의 기본값 (AutoScaleMode.Font)을 사용하면 양식에서 사용자 시스템 글꼴 크기에 따라 하위 컨트롤의 크기와 위치를 조정할 수 있습니다. 이 속성을 AutoScaleMode.None으로 변경하면 양식 자체의 크기가 조정되지 않습니다. 그러나 응용 프로그램에서 GDI + 드로잉을 수행하는 경우 모든 드로잉 호출이 DPI 독립적인지 확인해야합니다. 또한이 설정을 변경하면 시력이 좋지 않은 사용자 (또는 작은 모니터)에게 응용 프로그램이 표시되지 않을 수 있습니다.

0

문제는 두 워크 스테이션 모두 정확히 동일한 DPI 설정을 갖고 있지 않다는 것입니다. 두 값을 같은 값으로 변경하면 문제가 해결됩니다.