為什麼 uwp 不支持多窗口?

只有個別應用比如 edge 有在應用內的多窗口。。。

為啥不在 pc 上加入系統級的多窗口?

這樣真的很麻煩比如我要同一個 pdf 雙開只能開一個 xodo 和一個 reader。

是有什麼技術關卡么?微軟在做這種事情么?


這個要app自己做。word就可以多窗口,其實你打開很多個word文檔都是跑在同一個process裡面的。



可以的。


至少 Windows 8.1 Universal apps 就已經支持多個 CoreWindows 的應用了。

Quickstart: Creating multiple windows for an app (XAML) (Windows)

Guidelines for multiple windows

為什麼不允許系統級別多窗口?

我假設題主的意思是 Universal Windows apps 需要可以多開。這會導致幾個蛋疼的問題,例如一個 app 只有一個 isolated storage,只有一個 registry hive,因此多開的時候如果有 race condition 就不好了,因為一旦 isolated storage 的一致性被破壞到應用不能啟動了,用戶只能選擇重裝應用,所以實際上至少前台 UI 全都是在一個進程里進行的。我沒有仔細看過前台 UI 存在的時候是否會執行後台任務,執行的話是用前台的那個進程執行還是再開一個進程執行,還是通過一個 Surrogate 進程調用程序集裡面的東西(畢竟我們有 WinRT metadata)。

從上面的 practice 裡面可以看到一個複雜的應用要實現多窗口是很麻煩的。以郵件為例子,假設整個郵件只有一個「在新窗口中查看郵件」功能可以產生多窗口。

——————————————

用戶觸發「在新窗口中查看郵件」:創建子窗口,子窗口沒有後退按鈕,並排顯示主窗口和子窗口。

——————————————

用戶並排顯示主窗口和子窗口後用手勢關掉主窗口:用子窗口內容替換真正的主窗口,並實際關掉子窗口,並且顯示「後退」按鈕。(as if 用戶只是在主窗口全屏顯示郵件)

——————————————

用戶在子窗口刪掉郵件、回復郵件完畢或回復途中刪掉草稿:替換法。

——————————————

用戶把主窗口移動到屏幕外面(還在最近應用列表中):顯示後退按鈕。

用戶點了後退:替換法,此後最近應用列表中將會減少剛剛挪進去的那一項。

——————————————

用戶在子窗口中回復:主窗口中出現草稿條目。

用戶在主窗口中點開草稿:引導用戶去子窗口。

用戶關掉正在編輯草稿的子窗口:主窗口變成可以編輯。

——————————————

好了,現在 IE/Edge 要實現多窗口,更麻煩。

用戶需要新窗口:創建、顯示。

用戶關掉主窗口:替換。

用戶通過關機關掉 IE/Edge:保存所有信息。

用戶重新打開電腦、IE/Edge:換元信息,且不要一次還原完,要 restore on access/demand。

內存緊張且窗口已經被 consolidated 掉了:關掉窗口,restore on demand。


在曝光的Win10預覽版新系統中,Edge瀏覽器已經支持多窗口打開,第三方應用還不清楚。


我覺得根本原因是,UWP不和Win32一樣默認就是多進程(每次啟動新進程),開發者自然懶得去實現複雜的單進程多窗口。Win32要實現單進程(窗口)也是麻煩一點的。


首先,是支持的。至於多窗口有沒有意義,得分APP了,請問像知乎這種APP,多窗口有何意義?


感覺題主是兩個問題:

1. 同應用多窗口

2. 同文件用同應用同時多次打開

個人意見:

1. 就像輪子哥說的那樣,要APP自己做。

2. 同文件同應用同時多次打開的話,假如你在用兩個窗口同時對同一文檔進行了不同的修改,就會出現衝突了。所以一般是不支持的。(前段時間再linux上好像就遇到了類似的問題,在linux上用vim改一個文件,忘了關了,回家又ssh上機器vim了一下,就會提示Another program may be editing the same file)


可以多窗口,豆奶tv這個軟體可以打開多個窗口同時看多個直播。


因為這是為手機和平板設計的。

不過嘛,也許以後也會加上多窗口支持的功能。畢竟,Win8那會兒metro應用還只能全屏運行呢,現在不也支持窗口了么?


推薦閱讀:

微軟內部員工讀操作系統源代碼的多嗎?
為什麼微軟要開發Edge而不是在原來IE上做一個功能限制的前端?
盜版win10為什麼通過一個激活軟體就能激活,微軟難道不知道嗎,為什麼不去開發一個可以杜絕自行激活的?
為什麼提到OS X優勢和Windows劣勢的時候都要大說特說Terminal?

TAG:微軟Microsoft | MicrosoftWindows | Windows10 | Windows10Mobile | 通用Windows平台UWP |