對大多數(shù)人來說,用戶界面就是軟件本身。所以,掌握用戶界面設(shè)計的技巧與技術(shù)是讓軟件 走向市場的最直觀因素.對于應(yīng)用軟件來說,一個基本現(xiàn)實就是:用戶界面是面向用戶的。 用戶需要的是開發(fā)者開發(fā)的應(yīng)用軟件 滿足其需求,并且易于使用。太多的開發(fā)者自以為是 藝術(shù)天才,他們不去盡力遵循用戶界面設(shè)計標(biāo)準(zhǔn),或花精力使得產(chǎn)品好用;相反,他們錯誤 地認(rèn)為編寫更靈巧的代碼或是使用一套確實有趣的顏色方案才是重要的事。Constantine (1995)指出,好的用戶界面使得人們不用閱讀用戶手冊或接受培訓(xùn)就能使用應(yīng)用軟件。 界面設(shè)計的重要性有這么幾個原因:首先,用戶界面越直觀,就越易用,越易用就越 便宜。因為界面越好,培訓(xùn)用戶就越容易,降低丁培訓(xùn)成本;界面越出色,用戶就越少求助, 降低了客戶支持成本。其次,界面越出色,用戶就喜歡使用,增強了開發(fā)者工作的滿意度。 一、用戶界面設(shè)計的技巧與技術(shù) 本節(jié)所包含的用戶界面設(shè)計技巧將有助于提高面向?qū)ο蠼缑娴脑O(shè)計。 l、一致,一致,還是--致。 你能做的最重要的事情就是保證用戶界面運作的一致性。對于列表框來說,如果雙擊其中的 項,使得某些事件發(fā)生,那么雙擊任何其它列表框中的項,都應(yīng)該有同樣的事件發(fā)生。 所有 窗口按鈕的位置要一致,標(biāo)簽和訊息的措辭要一致,顏色方案要一致。用戶界面的-致性使得 在用戶對 于界面運作建立起精確的心理模型,從而降低培訓(xùn)和支持成本。 2,建立標(biāo)準(zhǔn)并遵循之。 在應(yīng)用軟件中保持一致的唯一途徑就是建立設(shè)計標(biāo)準(zhǔn)并加以遵循。最好的辦法 是采取一套行 業(yè)標(biāo)準(zhǔn),對自身特殊的需要加以補充。已有的行業(yè)標(biāo)準(zhǔn),如IBM標(biāo)準(zhǔn)(1993)與Microsoft標(biāo)準(zhǔn) (1995),通??蓾M足95%到99%的需要。采用行業(yè)標(biāo)準(zhǔn),只需利用已有的成果,也使你的應(yīng) 用軟件看起來或 感覺上更象用戶已購買或建立的其它應(yīng)用軟件。應(yīng)當(dāng)在定義基礎(chǔ)構(gòu)造階段就 建立用戶界面設(shè)計標(biāo)準(zhǔn) (Atablet,1998)。 3、闡明規(guī)則。 用戶要知道怎么使用你為他們開發(fā)的軟件。軟件運作的一致性表明,規(guī)則你只需解釋一 遍. 這比一步步詳細(xì)講解如何使用應(yīng)用軟件每個特性要容易得多。 4、同時支持生手和熟手。 圖書館目錄符號對圖書館系統(tǒng)的一般用戶來說,也許就夠用了,但對熟手用 戶,如圖書管理 員,很可能就沒有那么有效了。圖書管理員是受過專門訓(xùn)練,能夠使用復(fù)雜的查詢系統(tǒng)找到 信息,因此,應(yīng)當(dāng)考慮建立一套查詢界面以滿足他們的獨特需要。 5、界面間切換很重要。 如果從一個屏幕轉(zhuǎn)換到另一屏幕很困難,用戶會很快灰心并放棄。當(dāng)屏幕流程 與用戶想完成 的工作流程相符,此軟件對用戶才有意義。由于不同用戶工作方式不同,應(yīng)用軟件需要有足 夠的靈活以支持他們不同的方式。在建模階段,界面流程圖可用來模擬屏幕之間的流程。 6、界面上的布局很重要。 在西方,人們是自左而右,從上而下閱讀,基于人們的習(xí)慣,屏幕的組織也 應(yīng)當(dāng)是自左而右, 從上而下。屏幕小部件的布局也應(yīng)以用戶熟悉的方式進行。 7、訊息和標(biāo)簽措辭要適當(dāng)。 屏幕上顯示的文本是用戶主要的信息源。如果文本措辭很糟,用戶的理解 就會很糟。要使用 完整的措辭和句子,而不要用縮寫和代碼,使文本易于理解。訊息措辭要積極,顯示用戶處 于控制之中,并提示如何正確使用軟件。如,下面哪一條訊息更吸引人: "你輸入了錯誤信 息"還是 "賬號應(yīng)為8位數(shù)"?此外,訊息措辭要一致,在屏幕上顯示的位置要一致。盡管這樣 的訊息"須輸入名字" 和"應(yīng)輸入賬號"分別來說措辭上沒問題,放在一起就不一致了。根據(jù)第 一條訊息的措辭,第二條訊息更好 的措辭應(yīng)當(dāng)是"須輸入賬號",這就使得兩條訊息措辭一致了。 8、了解小部件。 為恰當(dāng)?shù)娜蝿?wù)使用恰當(dāng)?shù)男〔考紫瓤梢詭椭鰪姂?yīng)用軟件的一致性,可能使得應(yīng) 用軟件 很容易構(gòu)造。學(xué)會如何正確使用小部件的唯一途徑是閱讀和理解你們所采用的用戶界面標(biāo)準(zhǔn) 及準(zhǔn)則。 9、對其它軟件不盲從。 除非你知道一個應(yīng)用軟件是遵循了你們的用戶界面標(biāo)準(zhǔn)和和準(zhǔn)則,否則你絕不 能認(rèn)定它做的 都是對的。盡管看看人家怎么做,從中獲得些主意是不錯的想法,但在懂得怎樣區(qū)分用戶界 面設(shè)計的好壞之前,你得留神。太多的開發(fā)者錯誤地模仿其它應(yīng)用軟件的用戶界面,而那些 界面卻設(shè)計得很 糟。 10、顏色使用要適當(dāng)。 使用顏色要謹(jǐn)慎。如果使用了,也要使用指示符。問題就在于有些用戶可能是色 盲一一如果 在屏幕上使用了顏色來突出顯示某些東西,假若想讓色盲的用戶注意到,那么需要做些另外 的工作來突出它,如在其旁邊顯示一個符號。顏色的使用也得一致,以使整個應(yīng)用軟件有同 樣的觀感。此外,在不同平臺上,色彩的表現(xiàn)不盡人意一一在一個系統(tǒng)上看上去很好,在另 一個系統(tǒng)上常??瓷先ズ茉?。展示會 上我們經(jīng)常聽到展示者這樣說: "在我家中的機器上看 上去可是很好的呀。" 11、遵循對比原則。 打算在應(yīng)用軟件中使用顏色,要確保屏幕的可讀性。最好的方法是遵循對比原則: 在淺色背 景上使用深色文字,在深色背景上使用淺色文字。藍色文字以白色為背景很容易讀,但以紅 色為背景很難辨認(rèn)。問題出在藍色與紅色之間沒有足夠反差,而藍色與白色之間則反差很大。 12、字體使用要適當(dāng)。 老式英語字體可能在莎士比亞的劇本封面看上去很合適,但在屏幕上卻很難認(rèn)。 要用那些可 讀性好的字體,如serif或Times Roman。此外,字體的使用要一致。節(jié)儉、有效地使用兩、 三種 字體的屏幕看上去遠(yuǎn)勝于使用五、六種字體的屏幕。要記住每次改變了字體的大小、風(fēng) 格(粗體、斜體、下 劃線,……)、樣式或顏色,都是在使用不同的字體。 13、灰掉而不是移走。 在某些時刻,用戶經(jīng)常只能訪問應(yīng)用軟件的某些功能。在刪除一個對象之前,要 先選中它, 由此加深用戶的心理模型,軟件應(yīng)當(dāng)用刪除按鈕及(或)菜單項去做一些事。按鈕應(yīng)當(dāng)移去還 是灰 掉?灰掉它,決不能移走!當(dāng)用戶不該使用時就灰掉它,可使用戶對如何使用應(yīng)用軟件建 立精確的心理模型。 如果僅僅移走一個小部件或菜單項,而不是灰掉它,用戶很難建立精確 的心理模型,因為用戶只知道當(dāng)前可 用的,而不知道什么是不可用的。 14、使用非破壞性的缺省按鈕。 通常每個屏幕定義一個缺省按鈕,如果用戶按了回車鍵調(diào)用此按鈕。問 題是有時用戶會意外 敲擊回車鍵,結(jié)果激活了缺省按鈕。缺省按鈕決不能有潛在的破壞性,如刪除或保存 (也許 用戶根本不想保存)。 15、區(qū)域排列。 當(dāng)屏幕有多個編輯區(qū)域,要以視覺效果和效率來組織這些區(qū)域。如圖1所示,編輯區(qū)域 左對 齊是最好的方法。換句話說,要使編輯區(qū)域左邊界在一條直線上且上下排列。與之相應(yīng)的標(biāo) 簽則應(yīng)右對 齊,置于編輯區(qū)域旁。這是屏幕上組織區(qū)域的一個整潔有效的方式。 16、數(shù)據(jù)對齊要適當(dāng)。 對一列列的數(shù)據(jù),通常的作法是整浮點數(shù)右對齊,字符串左對齊。 17、屏幕不能擁擠。 擁擠的屏幕讓人難以理解,因而難以使用。實驗結(jié)果(Mayhew,1992年)顯示屏幕總 體蓋度不 應(yīng)超過40%,而分組中屏幕蓋度不應(yīng)超過62%。 18、有效組合。 邏輯上關(guān)聯(lián)的項目在屏幕上應(yīng)當(dāng)加以組合,以顯示其關(guān)聯(lián)性。反之,任何相互之間毫不相 關(guān)的項目應(yīng)當(dāng)分隔開。在項目集合間用間隔對其進行分組/或用方框也同樣可做到這一點。 19、在操作焦點處打開窗口。 當(dāng)用戶雙擊一個對象顯示其編輯/詳情屏幕,用戶的注意力亦集中于此。 因而在此處而不是其它地方打開窗口才有意義。 20、彈出菜單不應(yīng)是唯一的功能來源。 如果主要功能被隱藏起來,用戶就不能學(xué)會怎樣使用軟件。開發(fā) 人員最讓人灰心的作法是濫 用彈出菜單,也稱作上下文相關(guān)菜單。一種使用鼠標(biāo)的典型方法,是用來顯示一 個隱藏的彈 出菜單,提供針對當(dāng)前工作的屏幕區(qū)域特定功能的訪問。 二、原型建立及技巧 (一)建立原型 建立原型是一種迭代分析技術(shù),在此過程中用戶參與建立屏幕及報表的實體模型。 原型的目的是展示應(yīng) 用軟件用戶界面的可能設(shè)計。圖2所示為原型建立的步驟。 ●確定用戶需求。原型的開發(fā)取決于用戶需求,需求決定了系統(tǒng)必須支持的業(yè)務(wù)對象。 可以通過面談及在建模階段(如CRC類職責(zé)協(xié)作圖)、用例和類圖建模階段收集需求。 ●建立原型。用原型工具或高級語言開發(fā)用戶所需的屏幕及報表。此階段最有益的忠 告是不要花大量時間去寫"好"代碼,因為在對原型作了評估之后,你很可能丟棄這些代碼。 ●評估原型。一個版本的原型建立后需要進行評估。主要目的是核實原型是否滿足用 戶需求。評估時要確定三個基本結(jié)果:原型成功之處、失敗之處及遺漏之處。對原型作了評 估后會發(fā)現(xiàn),有的部分要丟棄,有 的部分要修改,甚至要添加全新的部分。 ●確定是否完成。當(dāng)評估過程中不再有新的需求,或只有少量無關(guān)緊要的需求時,原 型建立過程就可結(jié)束。 (二)原型建立的技巧與技術(shù) 1、尋找現(xiàn)實對象。好的用戶界面令用戶使用時如同身臨其境。因此,應(yīng)當(dāng)以此為出發(fā) 點,確定用戶在現(xiàn)實世界中的使用方式。 2、實際用戶共同工作。參與建立原型的最佳人選,是那些在應(yīng)用軟件開發(fā)完成之后的 實際使用者。這些人是系統(tǒng)成功實現(xiàn)的最大獲益者,也正是他們,最清楚自己的需求。 3、設(shè)定時間表并執(zhí)行。設(shè)定時間表,確定何時與用戶一起對原型進行評估。這樣做, 既給用戶設(shè)定了期望,也迫使自己做好這項工作,是一個雙贏局面。 4、使用原型工具?;ㄥX買那種可以讓你快速整合屏幕的原型工具。因為很快寫出的代 碼鮮有值得保留的,即便原型工具生成的代碼,與你打算進一步開發(fā)的代碼類型不同,也不 必太在意。 5、用戶參與。就如同買車之前要試車,用戶在應(yīng)用軟件開發(fā)之前也應(yīng)一試。此外,通 過親自試用原型,用戶可以很快確定系統(tǒng)是否滿足要求。一個好方法是讓用戶將原型當(dāng)作實 際系統(tǒng),通過一些用例來使用。 6、了解根本業(yè)務(wù)。開發(fā)支持業(yè)務(wù)的原型前,需要了解根本業(yè)務(wù)。要與主要用戶面談, 閱讀業(yè)務(wù)流程的內(nèi)部文檔,閱讀一些競爭對手如何實現(xiàn)的文檔。對業(yè)務(wù)越了解,就越有可能 建立支持其業(yè)務(wù)的原型。 ' 7、原型的不同層次??梢砸来伍_發(fā)系統(tǒng)的三種不同類型的原型。手繪原型,用來顯示 基本/大概功能;電腦原型,用來顯示屏幕,但不包含要顯示的數(shù)據(jù):最終是包含顯示的數(shù) 據(jù)屏幕。由簡單開始,避免在 那些很可能被丟棄的東西上花大量時間。隨著原型逐步接近最 終方案,依次增加其復(fù)雜性,倘若對原型不斷 加以改進,用戶對應(yīng)用軟件實際中將如何運作 就會有越來越清晰的認(rèn)識。 8、別在代碼上下功夫。在建立原型過程的開始,隨著對業(yè)務(wù)了解的深入,許多工作可以 丟棄。因此,花大量精力寫那些很可能不會保留的代碼沒有意義。 三、界面流程圖 ●界面流程圖顯示了應(yīng)用軟件的用戶界面部件、屏幕及報表之間的關(guān)系對用戶來說, 用戶界面就是系統(tǒng)本身。雖然用戶界面原型常常會使開發(fā)者陷于界面實際如何運作的泥潭之 中,它只是描述用戶界面的一種手 段。用戶界面原型導(dǎo)致開發(fā)者遺漏了應(yīng)用程序界面對象 (通常是屏幕)之間的高層關(guān)系和相互作用。界面流程圖使開發(fā)者模擬了這些高層關(guān)系。 ●界面流程圖幫助開發(fā)者驗證用戶界面設(shè)計圖3是一個定單系統(tǒng)的界面流程圖。方框表 示用戶界面對象(屏幕、報表或表單),箭頭表示屏幕間可能的流程。如,通過主菜單屏幕, 可以進到客戶查詢屏幕或定單登 錄屏幕。一旦進入定單登錄屏幕,可以進到產(chǎn)品查詢屏幕或 客戶定單登錄屏幕。界面流程圖可以很容易顯示應(yīng)用軟件界面的高層概貌。由于界面流程圖 提供了系統(tǒng)界面的高層視圖,開發(fā)者可很快理解系統(tǒng)預(yù)期的運作流程。它提供了驗證應(yīng) 用軟 件的用戶界面整體流程的視角。如,某個屏幕流程是否有意義?為何不能從客戶編輯屏幕進入 客戶定單目錄屏幕?哪個目錄包含了一客戶所作的所有定購?此外,為何不能從產(chǎn)品的角度獲 得同樣的目錄?有些情況 下,人們對查明哪些定單包含某件產(chǎn)品感興趣,尤其是期貨產(chǎn)品或 已不可得的產(chǎn)品。界面流程圖也可用于確 定用戶界面的一致性,以圖3為例,選擇打印命令, 生成客戶摘要報表和打印定單,從圖上看來,至少對于 打印來說,用戶界面是一致的。 四,普始善終 每個開發(fā)人員一一特別是系統(tǒng)分析員、 原型開發(fā)人員及構(gòu)建用戶界面的程序員,都應(yīng) 對人因工程學(xué)(Human Factors En- gineering---HFE)及所基于開發(fā)平臺行業(yè)標(biāo)準(zhǔn)的用戶界面 準(zhǔn)則有墓本的了解。如,任何基于Win32平臺的開 發(fā)人員,都應(yīng)當(dāng)擁有和閱讀微軟用戶界面 指南(Microson 1995)。決不可忘記,用戶界面對用戶來說就是軟 件,而不是數(shù)據(jù)庫,不是 網(wǎng)絡(luò),也不是開發(fā)人員寫的那些很酷的Java代碼?;谝陨弦娊?,可以說,不懂用戶界面設(shè) 計,就沒資格開發(fā)軟件! 所以,開發(fā)人員要做的是:首先,閱讀本文只是一個好的開端,還需要進一步接受教 育??梢詮挠脩艚?面設(shè)計的概論課程開始,此課程涵蓋了人因工程學(xué)、符號、心理模型、屏 幕設(shè)計基礎(chǔ)、報表設(shè)計基礎(chǔ)。如果 要開發(fā)面向?qū)ο蟮挠脩艚缑?Object-Oriented User Interfaces--OOUIs),建議閱讀本文作者所著的Building Object Applications That Work (Ambler,1998a)一書的第九章。其次,花兩天時間學(xué)習(xí)所基于開發(fā)平臺的用戶界面標(biāo)準(zhǔn)。 現(xiàn)有的用戶界面標(biāo)準(zhǔn)囊括了許多常見操作系統(tǒng),包括互聯(lián)網(wǎng)開發(fā)的通用用戶界面標(biāo)準(zhǔn)。再次 說明,如果沒有此類課程,你也得作相關(guān)的學(xué)習(xí)。 總之,每個開發(fā)人員都應(yīng)了解用戶界面設(shè)計的基本原則。 五、小結(jié) 下面我們將設(shè)計高效的用戶界面的主要技巧小結(jié)如下: 1、一般指南 ●用戶界面的一致很關(guān)鍵, ●設(shè)立界面標(biāo)準(zhǔn)并遵循之, ●采用行業(yè)標(biāo)準(zhǔn),也使你的應(yīng)用軟件看起來或視感上與其它機構(gòu)開發(fā)的軟件更趨一致, ●向用戶闡明軟件運行規(guī)則。有了一致性,規(guī)則只會簡練, ●支持生手也支持熟手; ●文字措辭一致、正面,要用全稱, ●對其它軟件不盲從',要知道不是每個人都懂得如何設(shè)計好的用戶界面; ●在桌面上顯示快捷方式; ●根據(jù)業(yè)務(wù)對象及其相應(yīng)的界面對象去思考,而不是從應(yīng)用軟件本身去思考; ●界面對象在視覺上、感覺上和行為上應(yīng)與其在現(xiàn)實世界的表現(xiàn)一致。 2、屏幕設(shè)計 ●界面間切換、界面布局都很重要; ●理解小部件,才能正確地加以應(yīng)用; ●使用顏色要謹(jǐn)慎,以指示符補充; ●遵循對比原則一一在淺色背景上使用深色文字,在深色背景上使用淺色文宇; ●字體使用要適當(dāng)和一致; ●項目不可用時,灰掉而不是移走,用戶才有形成精確的心理模型: ●使用無害的缺省按鈕; ●編輯區(qū)域左對齊,相應(yīng)的標(biāo)簽則應(yīng)右對齊, ●整數(shù)、浮點數(shù)右對齊, 字符串左對齊; ●避免屏幕擁擠; ●用方框和間隔對屏幕上有邏輯關(guān)聯(lián)的項目加以組合; ●在操作焦點處打開窗口; ●彈出菜單不應(yīng)是唯一的功能來源。 3、建立原型 ●用戶需求決定了原型的開發(fā); ●原型評估的任務(wù):發(fā)現(xiàn)原型的成功之處,失敗之處及遺漏之處; ●在評估過程中只發(fā)現(xiàn)少量需求或不再有新的需求時,即可結(jié)束原型建立過程; ●尋找現(xiàn)實對象,確定用戶在現(xiàn)實世界中的使用方式; ●與軟件開發(fā)完成之后的實際用戶共同工作, ●設(shè)定原型開發(fā)時間表并執(zhí)行; ●使用原型開發(fā)工具: ●用戶參與開發(fā),對原型進行測試: ●了解根本業(yè)務(wù); ●別在很可能丟棄的事情上花大時間, ●一旦界面對象穩(wěn)定,就應(yīng)文檔化, ●為原型開發(fā)界面流程圖: ●對組成原型的每個界面對象建立文檔。內(nèi)容包括:界面對象的用途、用法;指出與之 相關(guān)的其它界面對象,每一部件的用徐、用法。 作者介紹: Scott W. Ambler:加拿大人,面向?qū)ο箝_發(fā)高級顧問。自1990年開始從事面對象技術(shù)工作, 擔(dān)任過多種角色:商業(yè)設(shè)計、系統(tǒng)分析、系統(tǒng)設(shè)計、項目管理、Smalltalk程序員、Java程序 員及C++程序員。毫無疑問,應(yīng)用程序的界面對用戶非常重要--無論代碼多么卓越,如果用戶 發(fā)現(xiàn)應(yīng)用程序很難使用,那么難于很好地接受它。因此,在開發(fā)應(yīng)用程序的過程中,開發(fā)人 員必須重視用戶界面的友好性。本文以VisualBasic為例,向讀者介紹創(chuàng)建友好的用戶界面。 界面設(shè)計基礎(chǔ) 1.什么是好的界面 設(shè)計用戶界面時,最好是先看看Microsoft或其他公司比較優(yōu)秀的應(yīng)用程序,我們會發(fā)現(xiàn) 許多通用的東西,比如工具欄、狀態(tài)條、工具提示、上下文菜單以及標(biāo)記對話框等。也可以 憑借自己使用軟件的經(jīng)驗,想一想曾經(jīng)使用過的一些應(yīng)用程序,哪些很好用。 另外,還要注意到大多數(shù)成功的應(yīng)用程序都提供多種選擇,來適應(yīng)不同用戶的偏愛。例 如MicrosoftWindows的"資源管理器"允許用戶通過菜單,用鍵盤或者鼠標(biāo)拖放來復(fù)制文件。 提供同一功能的多種操作方式,會擴大應(yīng)用程序的吸引力。至少應(yīng)該使所有的功能都能被鼠 標(biāo)和鍵盤所訪問。 2.Windows界面準(zhǔn)則 Windows操作系統(tǒng)的主要優(yōu)點就是為所有的應(yīng)用程序提供了公用的界面。知道如何使用基 于Windows應(yīng)用程序的用戶,很容易學(xué)會使用其他應(yīng)用程序。而與創(chuàng)建的界面準(zhǔn)則相差太遠(yuǎn)的 應(yīng)用程序不易讓人喜歡。 菜單就是這方面很好的一個例子--大多數(shù)基于Windows的應(yīng)用程序都遵循這樣的標(biāo)準(zhǔn): "文件"菜單在最左邊,然后是"編輯"、"工具"等可選的菜單,最右邊是"幫助"菜單。子菜單 的位置也很重要。用戶本期望在"編輯"菜單下找到"復(fù)制"、"剪切"與"粘貼"等子菜單,若將 它們移到"文件"菜單下會引起用戶的混亂。不要偏離已經(jīng)創(chuàng)建的準(zhǔn)則太遠(yuǎn),除非有很好的理 由這樣做。 3.控件的位置 通常,在用戶界面中,應(yīng)該將重要的或者頻繁訪問的元素放在顯著的位置上,而不太重 要的元素就應(yīng)當(dāng)降級到不太顯著的位置上,以確保越是重要的元素越要很快地顯現(xiàn)給用 戶。對于大多數(shù)自然語言來說,我們都習(xí)慣于在一頁之中從左到右、自上到下地閱讀。對于 計算機屏幕也如此,大多數(shù)用戶的眼睛會首先注視屏幕的左上部位,所以最重要的元素應(yīng)放 在屏幕的左上部位。例如,如果窗體上的信息與用戶有關(guān),則它的名字字段應(yīng)當(dāng)顯示在它能 最先被看到的地方。而命令按鈕,如"確定"或"下一個",應(yīng)當(dāng)放置在屏幕的右下部位(因為 用戶在未完成對窗體的操作之前,通常不會訪問這些按鈕)。 應(yīng)當(dāng)盡量把元素按功能或關(guān)系進行邏輯地分組,比如定位數(shù)據(jù)庫的按鈕(如"下一條"、 "最后一條")應(yīng)當(dāng)被形象地分成一組,而不是分散在窗體的四處。再如,通常將各字段與地 址分在一組,因為它們聯(lián)系緊密。在許多情況下,可以使用框架控件來進行分組。 4.界面元素的一致性 在用戶界面設(shè)計中,一致性是一種優(yōu)點。一致的外觀與感覺可以在應(yīng)用程序中創(chuàng)造一種 和諧。如果界面缺乏一致性,則很可能引起混淆,并使應(yīng)用程序看起來沒有條理,甚至可能 引起對應(yīng)用程序可靠性的懷疑。 在VisualBasic中雖然有大量的控件可供使用,但應(yīng)盡可能地選擇能很好適合特定應(yīng)用程 序的控件子集。例如,雖然列表框、組合框、網(wǎng)絡(luò)以及樹等控件都可用來表示信息列表,最 好還是盡可能使用一種類型。 還有,盡量恰當(dāng)?shù)厥褂每丶m然TextBox控件可以設(shè)置成只讀,并用來顯示文本,但 Label控件 通常更適用于該目的。在為控件設(shè)置屬性時要保持一致性,如果在一個地方可編 輯的文本使用白色背 景,除非有很好的理由,否則不要在別的地方又使用灰色。 在應(yīng)用程序中不同的窗體之間保持一致性對其可用性有非常重要的作用。如果在一個窗 體上使用 了灰色背景以及三維效果,而在另一個窗體上使用白色背景及二維效果,則這兩個 窗體就顯得毫不相干。 5.空白空間 有的用戶界面中使用空白空間有助于突出元素和改善可用性。一個窗體上有太多的控件 會導(dǎo)致界 面雜亂無章,使得尋找一個字段或者控件非常困難,在設(shè)計中需要插入空白空間來 突出設(shè)計元素。各控件之間一致的間隔以及垂直與水平方向元素的對齊可以使設(shè)計更可用。 就像雜志中的文本那 樣,安排得行列整齊、行距一致,整齊的界面也會使其容易閱讀。 VisualBasic提供了幾個工具,使得控件的間距、排列和尺寸的調(diào)整非常容易。"排列"、 "按相 同大小制作"、"水平間距"、"垂直間距"和"在窗體中央"等命令都可以在"格式"菜單中找到。 6.顏色 在界面上使用顏色可以增加視覺上的感染力,少量明亮色彩也可以有效地引起人們對重 要區(qū)域的 注意。但是,應(yīng)當(dāng)盡量限制應(yīng)用程序所用顏色的種類,而且色調(diào)也應(yīng)該保持一致。 如果可能的話,最好堅持標(biāo)準(zhǔn)的16色調(diào)色板。 7.圖像和圖標(biāo) 圖片與圖標(biāo)的使用也可以增加應(yīng)用程序在視覺上的趣味,但是,細(xì)心的設(shè)計也是必不可 少的,如 果用戶不能很容易地識別圖標(biāo)所表示的功能,就會很糟糕。在設(shè)計工具欄圖標(biāo)時, 應(yīng)查一下其他的應(yīng) 用程序以了解已經(jīng)創(chuàng)建了什么樣的標(biāo)準(zhǔn)。例如,許多應(yīng)用程序用一張角上 有卷邊的紙來表示"新建文 件"圖標(biāo)。也許還有更好的比喻來表示這一功能。但改用其他的表 示方法會引起用戶的混淆。 8.字體 字體也是用戶界面的重要部分,因為它們常常給用戶傳遞重要的信息。需要選取在不同 的分辨率和不同類型的顯示器上都能容易閱讀的字體。應(yīng)當(dāng)盡量使用標(biāo)準(zhǔn)Windows字體,如 Arial、NewTimesRoman或者System。如果使用了非標(biāo)準(zhǔn)的字體,那么當(dāng)用戶的系統(tǒng)中沒有包 含指定的字體時,系統(tǒng)會使用替代的字體,其結(jié)果可能與設(shè)想的完全不一樣。 還有,在選取字體時,設(shè)計的一致性非常重要。大多數(shù)情況下,不應(yīng)當(dāng)在應(yīng)用程序中使 用兩種以上的字體。錯誤處理 用戶在使用程序的時候總會出現(xiàn)這樣那樣的問題。程序設(shè)計人員在設(shè)計用戶界面時,應(yīng)盡量 全面地考慮可能出現(xiàn)的錯誤,并判斷哪一個需要用戶交互作用,哪一個可以按事先安排的方 案解決。 1.創(chuàng)建容易理解的對話框 偶爾應(yīng)用程序中會出現(xiàn)錯誤,需要為解決這種情況做出判斷。這通常作為代碼的分支出 現(xiàn)If...Then語句或者Case語句。如果這個判斷要與用戶交互,此問題通常用對話框來提交給 用戶。 相信任何程序員都會使用對話框與用戶交互,關(guān)鍵問題是要采取用戶容易理解的語言。 比如這樣的消息:"硬盤C的扇區(qū)被損壞或不能訪問。中止、重試、忽略?",這對一般的用戶 而言不大好理解。更好的表達可以是"在C盤上存文件有問題,請把文件存于A盤。存不存文件?" 當(dāng)為應(yīng)用程序創(chuàng)建對話框時,應(yīng)想著用戶。這個消息給用戶傳達了有用的信息嗎?它容 易理解嗎?命令按鈕表示的選擇明確嗎?這個選擇適合給定的條件嗎? 2.不用對放大框的錯誤處理 當(dāng)錯誤出現(xiàn)時不一定要打斷用戶。有時更可取的是不通知用戶而用代碼來處理錯誤,或 者以不停止用戶工作流程的方法來提醒用戶。很好的例子是Microsoft Word中的"自動更正" 功能:如果普通單詞拼錯了,Word自動修改它;如果不常用單詞拼錯了,在其下劃一條紅線 提醒用戶以后改正。 有大量的技巧可以采用: (1)在"編輯"菜單中添加"撤消"功能。對于刪除等情況,與其用"確定"對話框來打斷用 戶,還不如確保他們做出正確的決定,并提供"撤消"功能以備他們以后改變主意。 (2)在狀態(tài)欄或圖標(biāo)上顯示消息。如果錯誤不影響用戶當(dāng)前的任務(wù),不要停止應(yīng)用程序。 使用狀態(tài)欄或亮色警告圖標(biāo)來警告用戶--當(dāng)他們準(zhǔn)備好后可以處理該問題。 (3)直接改正問題。有時錯誤的解決辦法很顯然,例如,當(dāng)用戶試圖存文件時磁盤已滿, 則在其他驅(qū)動器中檢查尋找空間。如果空間可用,則保存該文件;在狀態(tài)欄中顯示一條消息 告訴用戶做了些什么。 設(shè)計完善的幫助體系 不論用戶界面設(shè)計得多么好,有時用戶總需要幫助。應(yīng)根據(jù)操作的難易程度和用戶的類 別,為程序設(shè)計層次不同但相對完善的幫助體系,可以采用的方法包括建立聯(lián)機幫助、工具 提示、狀態(tài)條、"這是什么"幫助等。 1.聯(lián)機幫助 聯(lián)機幫助是任何應(yīng)用程序的重要部分,它通常是用戶有問題時最先查看的地方。甚至簡 單的應(yīng)用程序也應(yīng)該提供"幫助"。 在設(shè)計"聯(lián)機幫助"時,要記住它的主要目的是回答問題。創(chuàng)建主題名稱與索引條目時盡 量用用戶的術(shù)語,例如,"我如何格式化頁面?"比"編輯"、"頁格式"菜單更容易找到主題。 很多情況下,還要提供上下文相關(guān)的幫助,如果用戶按下F1鍵后,屏幕上立刻出現(xiàn)了相 關(guān)的幫助畫面,用戶會感到非常滿意。 2.工具提示 工具提示是個小標(biāo)簽,當(dāng)鼠標(biāo)指針在控件上停留時即顯示相關(guān)幫助信息。當(dāng)用戶在用戶 界面上搜索時,工具提示是一種向他們顯示信息的好方法。 大多數(shù)VisualBasic控件都包含用來顯示工具提示的屬性ToolTipText,可以用這個屬性 為控件提供工具提示,如:CmdPrint.ToolTipText="打印文檔" 3.狀態(tài)顯示 狀態(tài)顯示是提供那些不太適合工具提示的指令或消息的一種好方法,包括在VisualBasic 的專業(yè)版與企業(yè)版中的狀態(tài)條控件能很好地顯示消息,Label控件也能用作狀態(tài)顯示。在狀態(tài) 顯示中顯示的文本可以用以下兩種方法之一來更新:用控件或窗體的GotFocus事件,或者 用MouseMove事件。 4."這是什么"幫助 "這是什么"幫助是指當(dāng)用戶選取窗體右上角的小問號并單擊控件,或者直接在控件上按 下鼠標(biāo)右鍵時,出現(xiàn)的幫助信息。"這是什么"幫助提供了和彈出式"幫助"主題的鏈接,稍復(fù) 雜的應(yīng)用程序就應(yīng)該提供這種幫助形式。 |
|