2013-07-31 3 views
2

WindowsFormsHost 내에 호스팅 된 Winforms 속성 표가 있습니다. Windows에서 DPI 설정을 변경하거나 을 변경하거나 DPI가 매우 높은 모니터를 사용하기 전에는 모든 것이 멋지게 작동합니다.Winforms 속성 표가 높은 dpi UI 오버랩

이렇게하면 속성 이름이 겹치기 시작합니다. UI를 정렬 한 다음 높은 DPI를 수용 할 수 있도록 글꼴의 크기를 조정합니다. 매우 이상합니다. 이는 모습입니다 :

enter image description here

(값 레이블 이름 라벨처럼 "폭파"하지 않는 방법 참고?) 나는 그이 DPI에 관련이 생각할 수있는 모든 것을 시도했다 . PropertyGrid가에 설정 AutoScaleMode, 제거 속성 매핑 UseCompatibleTextRendering 등을 설정 호스트, 에서 ...

나는 닷넷 소스를 통해 찾아 봤는데 세트 A와 방법이있을 것 같지 않습니다 이름과 다른 글꼴 값.

빈 WPF 응용 프로그램에서 이것을 재현하려했지만 그렇게 할 수 없었습니다. 누구나 아이디어가 있으십니까? 내 리소스와 Google 기술을 모두 소진했습니다.

감사

사이먼

편집 : 그것은 관련이 넣다, 내가 설정 제어판에서 "모든 항목의 크기를 변경"-> 디스플레이에 "대형 - 150 %". Windows 8을 사용하지만 다른 플랫폼에서도이 문제를 보았습니다.

+0

샘플 winforms 응용 프로그램으로 이것을 재현 할 수 있습니까? 나는 할 수 없다. –

+0

설명하기가 어렵습니다. 삼켜지는 예외, Debug + Exceptions, CLR 예외에 대한 Thrown 체크 박스를 확인하십시오. 도구 + 옵션, 디버깅, 일반, 내 코드 만 삭제합니다. –

+0

삼키는 예외는 없습니다. 두려워요. 나는 이것을 재현 할 수 없었다 (여전히 노력하고있다). WPF 응용 프로그램을 실행하는 WinForms 프로젝트라는 것을 잊어 버렸습니다. – Simon

답변

1

DPI 문제를 유발 한 것은 System.Windows.Forms.WebBrowser의 인스턴스였습니다. 사용자 컨트롤 중 하나에서 해당 컨트롤을 주석 처리/제거하고 모두 정상입니다.

내 질문에 대한 대답입니다. 내 문제가 해결되었습니다. 비록 내가 아직도 매우 궁금 해서요. 이 발생합니다. (나는이 문제를 발견하기 전에 빨대에서 파악 보냈다 얼마나 많은 시간 안 함)

나는이 확실히 내 문제, 의 원천이 될 입증되었습니다 동안 내가 재현 할 수 없었던 것을 추가 할 수 있습니다

더 작은 응용 프로그램에서.

2

나는 똑같은 문제를 겪었습니다. 응용 프로그램에서 DPI 인식을 끄는 것이 가장 좋은 방법이었습니다. 그리고 그 일을하는 가장 좋은 방법은 AssemblyInfo입니다.

[assembly: DisableDpiAwareness] 
관련 문제