我們有一個傳統的.net Windows窗體應用程序。 我們已經用Web應用程序替換了它的大部分,但仍然使用Windows窗體應用程序進行管理任務。爲什麼在同一臺4k顯示器上顯示的窗口不同
當這個應用程序在4k顯示器上使用時,它看起來非常糟糕,這是可以理解的。
但外觀會根據系統上的其他顯示器而變化。 測試是在通過顯示器端口連接4k顯示器的聯想430上完成的。 筆記本電腦顯示器的分辨率是1920/1080,4k顯示器的分辨率是3840/2160。顯示比例始終爲200%。
以下所有屏幕截圖都是在4k顯示器上拍攝的。與兩個監視器活性
- 一個測試
- 與第二屏幕的一個測試僅
- 與筆記本顯示器一個測試閉合(這意味着只提供一個監視器,用於系統)
我知道我們的應用如果沒有更改並設置dpiAware/dpiAwareness,在4k上看起來不太好。
但我的問題是: 爲什麼應用程序只會根據哪些監視器處於活動狀態而發生變化?有沒有一種方法可以控制哪種外觀?
根據我所知,發生這種情況的部分原因是因爲您如何設置winforms的佈局屬性。例如,如果'AutoSize'設置爲'True',則每次更改顯示器分辨率都會影響表單大小。 'Anchor'和'Dock'也是如此,這就是爲什麼大多數人喜歡WPF而不是WinForms。如果沒有適當地設置這個屬性,從3840/2160到1920/1080監視器,你會得到一個「抽象」(試圖在這裏畫一個笑話)winform。 –