2011-03-14 1 views
4

주력 제품으로 Winforms 응용 프로그램이있는 회사에서 일하고 있습니다. 우리는 최근 브랜딩 및 UI를 수정했습니다. 우리는 이제 Forms가 텍스트를 올바르게 표시하지 못하고 일부 컨트롤이 정렬되지 않았거나 가장자리에서 사라 졌다는 것을 알았습니다. 나 우리가 시간이 없어으로 다시 인수 분해의 가장 적은 DPI 인식이 응용 프로그램에 양식을하는어떻게 WinForms 응용 프로그램을 DPI 인식으로 만들 수 있습니까?

가능 그것입니다.

+0

WPF로 이동할 수는 있지만 빠르지는 않습니다. [윈폼 다른 DPI 레이아웃]의 – zerkms

+0

가능한 중복 (http://stackoverflow.com/questions/1850915/winforms-different-dpi-layouts) – ChrisF

+0

의 가능성 : 감사합니다 ... 일반 패널과 – Sam

답변

13

그것은 당신이 픽셀 좌표와 크기를 지정하지 않는 것이 중요합니다의 매니페스트 파일을 사용하는 것입니다. 이는 양식에 컨트롤을 "배치"할 때 디자이너가 수행하는 것 인 Control.TopControl.Left을 사용하지 않습니다.

다른 DPI 설정으로 작동하는 UI를 얻으려면, 거의 모든 동적으로 크기가되어야한다. 컨트롤에 Control.AutoSize이 활성화되어 있어야합니다. 그러나 제어 위치가 여전히 고정되어 있으므로 AutoSize을 활성화하면 레이아웃이 완전히 엉망이됩니다.

컨트롤을 동적으로 배치하려면 및 TableLayoutPanel (크기는 AutoSize으로 설정)과 같은 컨테이너 컨트롤을 사용할 수 있습니다. 자동으로 결정된 크기에 따라 그 안의 정상적인 컨트롤이 폼을 움직일 것입니다. 당신이 볼 수 있듯이

,이, 간단하지 않다 권리를 얻기 위해 약간의 경험이 필요하고 (다른 DPI 설정이 잘 작동 가상 시스템) 시험의 엄청난 금액을 필요로한다. 하지만 랩톱에서 뭔가 어리 석고 버그가 있으면 항상 괴롭기 때문에 꼭해야한다고 생각합니다.

+2

FlowLayoutPanel. 핵심은 크기를 지정하는 것이 아니라 앵커링, 도킹 및 성장 특성입니다. –