2009-07-29 29 views
5

我正在越來越多地使用桌面應用程序和我的GUI。我熟悉GUI設計的基礎知識,但在實踐中遇到困難。用於在Visual Studio中創建GUI的良好資源

我在找的是很好的(或至少是體面的)建設指南(不設計!)在Visual Studio中的一個GUI。

做不到這一點(我沒有通過通常的來源找到了),我要問:是否有可能/值得建立與VS2K5的「設計」視圖中的GUI的努力?這是我一直在使用的,因爲我是一個視覺的人。

具體來說,我正在尋找幫助實施完成設計的「堅果&螺栓」

我並不反對,如果需要安裝額外的工具,但我的選擇是堅持的東西你如果可能,通過VS2k5的香草安裝。

+0

你使用的是什麼框架? Windows窗體? MFC? WPF? – 2009-07-29 14:26:11

+0

Windows窗體現在,儘管我非常開放使用VS2K5附帶的其他東西,並且可以與C#後端一起使用。 – Jeff 2009-07-29 14:37:43

+0

您是否閱讀過MVC模型 - 視圖 - 控制器設計模式? – kenny 2009-09-09 11:08:03

回答

2

Visual Studio設計者WinForms工作得很好。我創建WinForms應用程序時一直使用它。另一種方法是在代碼中定義UI元素,這非常痛苦。

OTOH,在我看來,對於WPF的WebForms(ASP.NET)的VS設計師的經驗是幾乎沒有用的WinForms好。幸運的是,對於WPF和WebForms應用程序,如果你不喜歡設計器,至少可以使用聲明標記,這比在代碼中定義UI元素好很多(不幸的是WinForms沒有聲明標記語言)。

使用VS的WinForms設計師,這裏有一些提示,以改善您的體驗:

  • 瞭解如何使用Anchor property。 與Dock屬性 一起學習可能會改進我的WinForms設計 的體驗,而不是其他任何事情。

  • 當設計師,總是有 Document Outline視圖中打開,顯示 您在樹視圖您 形式的控制層次...真的 樂於助人,重命名 控制時尤其如此。

0

我很少有時間去真正挖掘多汁的聯繫,但我相信你一個小挖將會給你一些最佳實踐信息。它可能與VS2k5中的表單設計者沒有直接關係,但兩種方式都有用。我並不是說你應該成爲一名可用性大師,但他們絕對值得關注。

此外,關於「價值建立與VS2K5的‘設計’視圖中的GUI的努力」?我會說這是一個是的&沒有。我只是這樣說的,如果你過分依賴設計師,無論IDE如何,你都錯過了骯髒的東西 - 真正教會你發生什麼的東西。在設計時或運行期間,您必須通過代碼完成一些事情才能獲得最佳結果,所以不用擔心真正瞭解底層的情況!

快樂的GUI!

-1

我不得不說我不同意croutle,創建好的UI並不一定與編碼有關。 SmashingMagazine有大量用於UI設計的資源目錄,雖然其中大多數都是非常網絡化的,但是無論您是通過編碼還是通過網頁將UI嵌入到Forms編輯器中,通用Prinicple仍然適用。

對於我而言,GUI設計師一直是一種將內容與演示分開的好方法,如果您開始不得不編寫大量代碼來影響UI中的簡單效果,那麼GUI的良好實現將支持它該線開始模糊。 Mac上的Interface Builder可以完成所有我用過的功能(其中包括Java Swing,Windows Forms)。

的問題是確實的相互作用吸或做一下吸,除非你是一個好的藝術家沒有真的有很多,你可以做後者,但堅持到最低限度。即使對於非藝術家類型,也可以學習極簡主義的科學知識(例如,在常規網格上佈置所有東西)。 This作品以某種方式適合打印,但大多數提及的方面都是通用的,適用於屏幕和UI設計。

前者可以通過嘗試將自己置於用戶鞋中來解決。查看用戶正在做的任務以及他們如何使用您的軟件完成任務。它是否使用戶更容易完成他們的工作,或者是否阻礙了阻礙工作流程的路徑。

3

如果您已經完成了您的設計並進行了計劃,那麼實施它應該是非常簡單的部分。使用WinForms,它確實是拖放(並設置一些屬性,例如對接和錨定)。

我發現真正有助於通過實現的技巧是完全和完全地模擬紙上的界面。我的意思是一切:每一個菜單,按鈕,標籤,網格等都應該勾畫出來。之後,只需將控件拖放到表單上,將其重命名爲合理的內容,並確保窗口大小不會將控件排除在外。

如果您在創建GUI時沒有完全實現的設計,那麼您將很難進行設計決策,因爲這會妨礙構建。

編輯:如果你願意支付,http://www.learnvisualstudio.net/有幾個視頻的基本應用程序,通常面向一個特定的控制(DataGridView,ListView等)的簡單圖形用戶界面的主題。

-1

我也在設計用戶界面。我一直在搞東西..無論如何,我試圖改善。我的新方法非常簡單:複製。周圍有很多不錯的用戶界面,我們不需要重新發明輪子。良好的副作用是我們用戶體驗的連續性。

以用戶發現的程序爲基礎,嘗試模仿它。例如,我認爲很多應用程序都可以通過跟蹤MS Outlook UI來完成。或者,如果您想做一些新的事情,請看看大佬們的功能:例如,試用Google的Picasa(桌面)。或者帶有色帶欄的任何程序。如果您有時間,請查看MS'Vista User Experience Interaction Guidelines(PDF可供下載)。有很多小解決方案,比如在哪裏放置「保存取消」按鈕,以及按照哪個順序。這是一件愚蠢的事情,但是會產生很大的差異。

一個很好的資源,如果你有一個任務要完成,並想要一個起點如何呈現它​​。它有很多「像這樣做」的提示和示例截圖。

Harald提到的另一個好資源是SmashingMagazine:您可以訂閱他們的Feed,而且桌面設計確實每天都更接近Web對手。

最後,圖標。 SmashingMagazine經常提供有關圖標的提示,並且您可以在IconFactory上找到許多收藏。

HTH!

2

當你看到一個成功的軟件時,它看起來很簡單,至少在理論上是如此。 GUI代碼的複雜性可能被極度低估,並且在設計階段有時會被忽略,因爲它被認爲是微不足道的。

我不確定您是在問WinForms教程還是專門針對如何組織和構建代碼的方式來保持理智,但無論哪種方式Jeremy Miller has a good collection of tips on how to design the GUI code structure。 (注意:這是關於GUI代碼結構,而不是WinForms或可用性設計)。

我的GUI代碼起飛處往往是這一過程:

  1. 在VS.設計器創建一個粗糙的fugly GUI從網頁設計來看,你可以在所見即所得的模式下考慮這個MS Frontpage - 沒有樣式或特定的結構。只是應用程序粗糙的視覺結構,菜單欄,工具欄,狀態欄等沒有自定義控件。
  2. 查看代碼,並將其整理成幾個類
  3. 回到設計師和控件添加到組織的類
  4. 查看代碼,並組織它。
  5. 沖洗,起泡,重複。

當我的代碼結構完成後,我進入極端細節模式,在那裏我手動編碼值以獲得像素完美,與GUI不同。

無論如何,我不太清楚你的問題是什麼,但我希望這有助於。如果我誤解了你,請告訴我。