2009-08-17 24 views
0

我應該如何開發一個可以很好地調整大小的窗體?Windows窗體(或一般的GUI開發)建議

雖然這聽起來像一個簡單的問題,我掙扎的問題是,我複製我的搖擺使幾年前現有的應用程序的事實。它圍繞一個隱藏/顯示面板的單一窗體構建,因爲您可以選擇不同的選項。

它的大約600 x 700像素寬,但它是一個固定大小的窗口。

這是一個很好的做法嗎? GUI以這種方式正常工作,但如果您查看其他應用程序,則可以輕鬆調整它們的大小。授予一些應用程序看起來愚蠢的全尺寸,但應該在那裏?

主屏幕由約五個按鈕,當最大化這個看上去ridicilous,但在同一時間,如果窗體是可調整大小的,你開始調整其大小變得愚蠢形式的時刻。

我知道佈局管理器等等所以沒有必要告訴我要檢查這些了,我的主要問題是,我可以產生一個很好的固定寬度的應用程序的事實,但僅此而已。

對此有任何建議/鏈接?

回答

3

一個固定大小的GUI通常是一個好主意,因爲大多數形式的具有能夠明智地被調整大小的用戶界面元素。

首先考慮一個只包含兩個按鈕的窗體。 (一個愚蠢的形式,是的,但爲了討論的緣故,我們假設這對於工作來說是正確的)當以正確的方式確定大小(適用於本地化,例如)時,沒有充分的理由使表單可調整大小。如果您放大或縮小了表格的大小,那麼您只需要讓該區域點擊更大的按鈕,但您會點擊比按鈕更小的區域來調整其大小,所以沒有任何理由。在這種情況下,表單可以調整大小是沒有意義的,因爲沒有增加額外控制的用戶權益。

現在考慮一個包含listview的表單。使這種形式在兩個維度上都可調整大小都有明顯的可用性好處。列表視圖可以包含比在較小區域中可以顯示的項目更多的項目,無論是水平還是垂直,因此這種形式可以完全調整大小以允許用戶顯示儘可能多或者少的數據。

無論是通過約束還是通過約定,每個表單控件都隱含地具有一定的自由度。傳統上,按鈕不會調整大小,因此它們沒有自由度(即使它們可以調整大小)。列表視圖和列表框有兩個自由度,水平顯示每行更多的數據,垂直顯示更多行。單行文本框有一個自由度,水平。因爲它們是單行的,所以它們不是垂直擴展,而是橫向擴展。

這些自由度有助於您確定表單的佈局。當表單被調整大小時,具有自由度的表單元素應該在適當的方向上調整大小。我更喜歡設計我的表格,只有一個控件在一個區域中有兩個自由度的區域,這些區域通常通過分隔符分開。我更喜歡避免顯式的表格佈局面板,除非有特別的需求,因爲當有表格佈局可以處理時,很容易使表格佈局過於複雜。 WinForms中的錨點爲控件佈局提供了非常強大和靈活的抽象,但是,我強烈鼓勵它們的使用。

4

個人而言,我認爲固定大小的表單是一個可怕的用戶體驗。

我總是試圖建立礦山,使他們能夠從容調整(即使他們這樣做看起來有點奇怪)。

如果您使用.NET爲您的WinForms開發,你可以很容易地使用表佈局,然後你的錨定的控制,以便他們調整禮貌。

0

除了佈局面板(我最喜歡的是表格佈局),熟悉Anchor,Dock(更多用於表格佈局)和MinimumSize屬性。當涉及到表單大小調整時,他們會爲您做很多工作。

你的大多數形式看起來愚蠢的最大化,但我的一般規則是這些:

  1. 按鈕保持相同大小 無論形式大小的(沒有頂部和 底部錨;沒有左,右 錨) 。
  2. 按鈕留在同一個地方與 對於邊界(錨 組合:{左,上},{左, 底部},{右,上},{右, 底部})
  3. 只有調整大小時,最右邊的文本框增長爲 (Anchor = Left和 Right)。
  4. 單多文本框統治形式 (錨=左,右,上,下)
  5. 使用多個多文本框,最低的一個規則的形式。
  6. 儘可能MinimumSize小於640x480;最大800x600
  7. 默認大小是MinimumSize - 讓用戶在需要時增大它的大小。