2016-09-07 65 views
0

我有一個問題,當我調試我的應用程序它不符合我在設計器中設置的大小。我試圖將表單的最小尺寸設置爲理想的值。Form1的視覺大小不匹配Form1的調試視覺大小

該表格是用分體面板構建的,面板停靠在每邊的填充處。 標籤具有默認錨點。文本框有錨,左,右,右。 按鈕左上角有錨。

如果我在運行期間將底部向下拖動,我得到我想要的大小/設計,但爲什麼它不像這樣開始,我該如何解決它?

Forms

+0

什麼是屬性窗口(F4)中的大小號碼? – zchpit

+0

1189,895和最小尺寸1189,895 –

+0

您是否在代碼中調整大小?另請參閱formborderstyle屬性 – Aimnox

回答

1

你看上去相當高的分辨率的屏幕上工作。 Windows窗體對於縮放內容並不是很好,並且具有您需要注意的各種怪癖。如果可能的話,我會轉向WPF,但如果您確實需要繼續使用Windows窗體,那麼應該這樣做。

  • 在主窗體上使用AutoScaleMode.Dpi。當顯示器的DPI高於默認值96(100%)時,它將按比例縮放和重新定位控件以符合您的設計。你也可以嘗試AutoScaleMode.Font,但如果你使用默認的字體(Tahoma 8,25 pt或類似的東西),它可能無法正常工作。
  • 使用TableLayoutPanelFlowLayoutPanel可使定位控制更容易。 FlowLayoutPanel可以水平或垂直動態地放置你的控件。如果您熟悉WPF或Windows Phone開發,那麼它基本上是一個StackPanel控件。
  • 確保您的屏幕DPI爲96(100%),並在整個開發過程中保持不變。您仍然必須確保在其他DPI上測試該應用程序,以便具有不同設置的用戶將能夠使用您的應用程序。

以下是關於DPI縮放的更多信息:

編輯: Visual Studio的Windows窗體設計顯示了使用不同的主題形式比你的Windows版本o這是你的表單在運行時看起來不同的原因之一。在運行時,表單使用當前運行應用程序的操作系統的主題。

+1

我發現使用TableLayoutPanel或FlowLayoutPanel可能會在計算機上打開項目時使用另一個分辨率而不是首次創建的分辨率,從而導致您的窗體在設計時產生混亂。在運行時,表單再次OK,但在設計時它看起來非常難看。我通過使用大量正常面板和dock屬性(不是錨!)解決了這個問題。它需要更多的工作,是的,它的老學校,但它的工作 – GuidoG

+0

@GuidoG你說得對,Windows窗體應用程序可以真的給你的臉上帶來一些驚喜,這就是其中之一。我想OP的結論是,有很多方法可以嘗試解決這種情況,但有了各種支持的Windows版本和不同的顯示器,很難找到適用於任何地方的完美解決方案。幸運的是我們有WPF! – hankide

+0

Hankide是的,但是我正在維護一個包含超過50個表格和MDI需求的項目。在這些情況下,WPF並不是非常有用。除非它已經完成了進化,我從2013年以來沒有看過它? – GuidoG