將 Windows Phone Silverlight 移植到 UWP,並切合外形規格和 UX
上一個主題是移植商務層和資料層。
Windows 應用程式可在電腦、行動裝置和各種其他類型的裝置上共用常見的外觀與風格。 使用者介面、輸入和互動模式非常相似,在經常換裝置的使用者會喜歡這種熟悉的體驗。 裝置之間的差異 (例如實體尺寸、預設方向和有效像素解析度因素) 會影響 Windows 10 呈現通用 Windows 平台 (UWP) 應用程式的方式。 好消息是,系統會使用有效像素等智慧概念為您處理大部分繁重的工作。
不同的外形規格和使用者體驗
不同的裝置可能具有多種縱向和橫向解析度,且外觀比例各異。 UWP 應用程式的介面、文字和資源的視覺效果將如何縮放? 如何支援觸控以及滑鼠和鍵盤輸入? 對於支援在不同尺寸、不同觀看距離的裝置上進行觸控的應用程式,控制項如何在各種像素密度下呈現正確大小的觸控目標,又能使其內容在不同距離下可讀? 下列各節將說明您需要了解的事項。
螢幕的尺寸到底有多大?
簡而言之,這個答案很主觀,因為它不僅取決於顯示器的客觀尺寸,還取決於使用者與顯示器的距離。 主觀代表我們必須設身處地為使用者著想,而這就是優秀的應用程式開發人員該做的,無論情況如何。
客觀上,螢幕以英吋和實體 (原始) 像素為單位進行測量。 了解這兩個計量可以讓您知道一英吋可以容納多少個像素。 那就是像素密度,也稱為 DPI (每吋點數),也稱為 PPI (每吋像素數)。 DPI 的倒數是像素的實體尺寸 (以英吋為單位)。 像素密度也稱為解析度,儘管該術語通常用來表示像素數。
隨著觀看距離的增加,這些客觀計量似乎都會變小,並且會解析成螢幕的有效尺寸,及其有效解析度。 手機通常最靠近您的眼睛;其次是平板電腦,然後是電腦顯示器,最遠的是 Surface Hub 裝置和電視。 為了彌補這一點,裝置往往會隨著觀看距離的增加而變得更大。 當您設定 UI 元素的大小時,您是以名為有效像素 (epx) 的單位設定這些大小。 Windows 10 將考慮 DPI 以及裝置的典型觀看距離,以實體像素計算 UI 元素的最佳尺寸,以提供最佳的觀看體驗。 請參閱檢視/有效像素、觀看距離和比例因素。
即便如此,建議您使用各種不同裝置測試應用程式,以便您可以親自確認每種體驗。
觸控解析度和觀看解析度
能供性 (UI 小工具) 的大小必須適合觸控。 因此,觸控目標需要在可能具有不同像素密度的各種裝置上,大致保留其實體尺寸。 有效像素也可以在這方面幫上忙:它們可在不同的裝置上進行縮放 (考慮像素密度),以達成適合觸控目標的固定實體尺寸。
根據觀看距離,文字大小必須適合閱讀 (一個不錯經驗法則是,20 吋觀看距離下適合使用 12 號字),影像要使用適當的大小和有效解析度。 在不同的裝置上,相同的有效像素縮放可以使 UI 元素保持正確的大小和可讀性。 文字和其他向量型圖形可以自動縮放,而且效果很好。 如果開發人員提供單一大型尺寸的資源,點陣型圖形也會自動縮放。 但是,開發人員最好為每個資產提供各種尺寸,以便可以自動載入適合目標裝置縮放因素的資產。 如需詳細資訊,請參閱檢視/有效像素、觀看距離和比例因素。
版面配置和調適型視覺狀態管理器
我們已介紹了理解螢幕尺寸所涉及的重要因素。 現在,讓我們考慮一下應用程式的版面配置,以及如何利用可用的額外螢幕空間。 假設這個頁面是一個非常簡單的應用程式,該應用程式設計為在狹窄的行動裝置上執行。 那麼此頁面在大螢幕上會是什麼樣子?
行動版本僅限縱向,因為這是書籍清單的最佳外觀比例;我們也會對文字頁面執行相同的動作,最好將其保留在行動裝置上的一個欄中。 但是,電腦和平板電腦螢幕在任一方向上來說都很大,因此行動裝置限制似乎對大型裝置來說是不必要的限制。
透過光學縮放應用程式使其看起來像放大後的行動版本,並沒有充分利用裝置及其額外空間,且這無法提供良好的使用者體驗。 我們應該考慮展示更多的內容,而不是把相同內容放大。 即使在平板手機上,也可以顯示更多列內容。 我們可以使用額外的空間來顯示不同的內容 (例如廣告),或者我們可以將清單框變更為清單檢視,並將項目包裝到多個欄中,以這種方式使用空間。 請參閱 清單和方格檢視控制項指南。
除了清單檢視和方格檢視等新控制項之外,Windows Phone Silverlight 中大多數已建立的版面配置類型在通用 Windows 平台 (UWP) 中都有對等項。 例如,Canvas、Grid 和 StackPanel。 雖然移植使用這些類型的 UI 應該很簡單,但最好能找到方法利用佈局面板的動態佈局功能,以在不同尺寸的裝置上自動調整大小和重新佈局。
除了系統控制項和佈局面板中內建的動態佈局之外,我們還可以使用名為調適型視覺狀態管理器的新 Windows 10 功能。
輸入方式
Windows Phone Silverlight 介面是觸控專用的。 您移植的應用程式介面當然也應該支援觸控,但您還可以選擇支援其他輸入方式,例如滑鼠和鍵盤。 在 UWP 中,滑鼠、手寫筆和觸控輸入會統一為計量輸入。 如需詳細資訊,請參閱處理計量輸入和鍵盤互動。
盡量重複使用標記和程式碼
請參閱最大化標記和程式碼重複使用清單,以了解將 UI 共用到具有各種外形規格的目標裝置的技術。