現在大部分的顯示器都是寬屏了,用戶的大部分時間都是在單窗口操作,任務欄為什麼不是默認在側邊,而是在桌面底部呢?


不反對前面的幾個說法,不過你們沒有解釋為什麼「默認」在下面的歷史原因。看看 Windows 的開發者 Raymond Chen 的解釋:Why does the taskbar default to the bottom of the screen?

最早 windows taskbar 就是在上面的。

這個是 windows 代號 Chicago Beta-1,就是 windows 95 的開發版本。在正式發布之前,因為 GetWindowPlacement 獲得窗口位置並保存位置,然後使用 SetWindowPos 設置窗口位置,如果 taskbar 在上面,原點就不是 (0,0) ,而應該有一個 y 軸的位移,但是開發人員認為這個太麻煩,乾脆把 taskbar 移到下面去算了。

If you put the taskbar at the top of the screen, lots of windows end up sliding under it, because they assumed that the usable area of the screen began at (0,0). Other windows would "creep" up the screen because they used GetWindowPlacement to save their window position (which returns workspace coordinates, where (0,0) is the first usable pixel) but use SetWindowPos to restore it (which uses screen coordinates, where (0,0) is the upper left pixel of the primary monitor).

There were too many apps that kept sliding under the top-docked taskbar so we had to abandon that idea and move it to the bottom.

竟然是為了省事。。。這幫懶鬼。。。

至於已經解決了這種古怪的位置問題的現在,為什麼 taskbar 還在下面,就是習慣使然,沒別的。

補充一下:

其實所謂Windows的任務欄,我們先看看最初代的Windows 1.0

其實最早Windows是沒有特定的任務欄的概念的,只是窗口縮小後,會默認放在底部。

所以你明白了吧,這才是任務欄最早的雛形。這個概念其實一直用到1995年,和Windows95同年發售的Windows NT 3.X系列,差不多10年時間,這也就造成了,大量軟體是按照屏幕0,0坐標系來定位的問題了。

這也就是微軟Windows95開發者最後在博客裡面說到的,為什麼Windows95的任務欄要默認放在底部,因為是給以前背鍋了。

至於為啥不方側面,你們這种放側面的想法是現在1080P、2K、4K成為主流後才有的。

放下面是從DOS就開始延續的慣例

默認下面當然是因為底下更寬啊,你要知道早起屏幕尺寸哪有現在這麼大,Windows甚至支持320x200的解析度,Windows發展到95當年主流也才是640x480到1024x768而已,不放在最寬的邊上難道放最窄的側邊?頂部被Mac用了,而且DOS時代主流軟體也是習慣了控制之類的功能放在下方的慣例延續(例如各種輸入法、turbo c、pctools、sea等等,這往上說可能要說到更早的字元型操作系統去了,按下不表),當然自然就優先放底部了。

再說人家微軟,也沒有放過側面啊,以前的Office助手不就是把側面霸佔了嗎?如圖

看看右側是啥?

然後,我們眼光放得更寬廣一些,跳出Mac System/OS、Windows、DOSshell這些框架,看看早年其它設備的GUI。

Arthur系統,運行在一種類似APPLE II設備上的圖形操作系統,你看,這也是在下面吧,是不是有現代Mac OS Dock區的雛形了?這種解析度側面能看?

MorphOS 3.10,更老的圖片找不到了。任務欄其實也是在下面,話說回來,Mac的Dock其實也是任務欄啊,頂部只是菜單欄而已……

本來還想貼點KDE、XFCE之類的,不過想想這些也爛大街了沒必要。油管子上有個「HISTORY OF THE MICROSOFT WINDOWS TASKBAR」其實大家可以看一下。雖然95確實是想放上面但是最後因為遺留問題放棄了,但是Windows最早的任務欄本來就是在底部的。而且在那個解析度不高的時代,放底部才是合理的。


@唐偉誠 的回答中,英文引文沒錯,但中文部分說的有點模糊。

應用窗口改變大小和位置時,使用GetWindowPlacement保存窗口位置。GetWindowPlacement返回的是當前工作區域(Workspace)的坐標,(0,0)是第一個窗口可用的像素——這是排除了任務欄區域的。

應用窗口恢復時(通常是指最小化/最大化後恢復),使用SetWindowPos來設置窗口位置。而SetWindowPos使用的是屏幕坐標,(0,0)是第一個屏幕的最左上方的像素——這是包含任務欄區域的。

當任務欄在屏幕頂部時,假設任務欄高度為20像素。一個窗口原來左上角像素的屏幕坐標為(10,40),也就是離屏幕左邊10個像素,離屏幕頂部40個像素,通過GetWindowPlacement獲得的工作區域坐標是(10,20)。當最大化再恢復時,用(10,20)這個屏幕坐標設置窗口位置,結果就是窗口向上「爬」了20個像素。


以下是個人補充:

鏈接中所說的是Win95的任務欄,然而Win95的內部版本號是4.0——這兩個API並不是從Win95才有的。

事實上,從85年的Windows 1.0就有任務欄了:

上圖中除了一個打開的Notepad,還有三個最小化成圖標的應用,一個磁碟管理器,一個時鐘,還有一個我不認識……最小化後的圖標都在底部。也因此頂部是沒有被其它元素使用的屏幕區域,屏幕區域坐標和工作區域坐標是一致的(事實上我並不清楚Windows 1.0是否區分這兩個概念,假設這個時候就有吧)。按照維基的說法[1],Windows 1.0的任務欄背景顏色默認和桌面一致但可以修改;應用窗口除非最大化,否則不能覆蓋任務欄區域。

至於為什麼Windows 1.0把任務欄放在底下,我沒找到權威的解釋。一個說法是模擬桌面(Desktop)的概念,真實世界裡當我們桌面放不下太多文件時,我們會把一部分文件收到桌子下方的抽屜里。另一個說法是這樣比較符合人類的視覺習慣:視野範圍中部是我們注意力最集中的地方,工作區域設置在中間。天上很重要,我們出門前都會抬頭看看天色,但天上很少會突然出現什麼變化,因此我們把一些重要但相對固定的元素放在屏幕頂部,例如窗口的標題,例如菜單欄。我們走路的時候會看著前方但時時留意腳下,因此屏幕下方放一些提示信息和其它頻繁變動的元素——例如應用窗口的狀態欄和整個系統的任務欄。


[1]:Taskbar - Wikipedia


為了照顧其他幾十億壓根不想折騰的人的用戶體驗吧。


相信我,放在底部是最好的選擇。

放在桌面四個方位我都試過,包括是否自動隱藏我也都試過,系統設置裡面可以調整。且不說顯示效果怎麼樣,放在其他的三個位置都會造成嚴重衝突。

上方是根本想都不用想的,強行跟瀏覽器的標籤衝突,想想你平時點標籤都是手隨意往上一甩,這次就要甩到任務欄上去了。不只是瀏覽器,一些其他的軟體也有類似「標籤」的功能。

右側也是根本不行的,想想你平時點窗口的關閉按鈕,同樣是手往右上角一甩,這次就要甩到開始按鈕上了。

左側影響稍微小一點,但是,在使用一些在左邊有側邊欄的軟體的時候,也會帶來不便,比如PS,autocad等等大型軟體都喜歡在左側放一個垂直工具欄。

放在下面是影響最小的,軟體操作基本不會在界面的最下方搞什麼幺蛾子。再開啟自動隱藏,完美。


推薦閱讀:
相关文章