UWP入門教程1——UWP的前世今生
目錄
引言
裝置族群
UI 和通用輸入模式
- 通用控制元件和佈局皮膚
- 工具
- 自適應擴充套件
- 通用輸入處理
引言
在本篇文章中,可以掌握以下知識:
- 裝置族群,如何決定目標裝置
- 新的UI控制元件和新皮膚幫助你適應不同的裝置特徵
從Windows 8系統開始,微軟就 引入了WindowsRT(Windows Runtime),它是Windows App 模型的一箇中間階段。希望能夠成為通用應用體系架構。
Windows Phone 8.1釋出時,也相容WRT 。這樣有助開發者使用同一程式碼庫建立通用的Windows8 app。
將近三年之後,微軟的重頭產品Windows 10終於橫空出世。Windows 10 開始引入 UWP,更進一步的發展了Windows RunTime 模型,並將WRT 引入了Windows10 核心中。作為系統核心的一部分,UWP 現在提供建立通用的App平臺(即App在執行Windows10的所有裝置中都可以執行),當然微軟內部也做出了改進,UWP 不僅包含了WinRT API,也增加了適應特定裝置群的API。UWP 為開發跨裝置App提供了可靠的API 層。這就意味著你只需要開發一次,就可在多種裝置中執行。併發布到Windows Store,所有的使用者都可以下載試用。
無論裝置的形式和輸入模態的不同,UWP 都可以執行,也可以為特殊裝置定製。自適應UI控制元件和新的佈局Panel 有助於解決裝置螢幕尺寸的多樣性。
裝置族群
Windows8.1 和Windows Phone 8.1 App 還存在作業系統的差異,無論是Windows和Windows Phone。有了Windows 10就不需要將所有的開發精力都集中在作業系統,但需要解決一個或多裝置特徵。裝置族群可以識別API,系統特徵,以及使用者行為,也決定了可執行某一App的裝置集。
裝置族群是蒐集的帶有版本號和識別符號的API集合,裝置族群是OS的基礎,PC 機執行桌面作業系統,是根據桌面裝置族群決定的,智慧手機和平板電腦等會執行Mobile OS,是由移動裝置族群決定的,等等。
通用裝置族群相對而言比較特殊,它不是任何OS 的基礎,相反,通用裝置族群的API是所有族群的父節點,正因為有了通用裝置族群API才保證了每個OS 能夠正常呈現到每種裝置中。
每個子裝置族群在通用族群基礎上新增自有的API。使用裝置族群的優點在於開發一次,到處執行,無論使用者使用哪種裝置,手機,平板或PC。App可使用自適應程式碼實現動態獲取裝置特徵,適應裝置。
你的App需要使用哪種裝置族群,主要取決開發需求,並且決定影響最終App的呈現:
1. API 集,App執行時需要呼叫的API
2. API集呼叫
3. 適應的裝置集,即App能夠安裝的裝置型別。
選擇裝置族群主要由兩方面原因決定,API 介面型別,是否建立App時能夠無條件呼叫,以及App需要覆蓋的裝置範圍。
如何做決策:
- 最大化App 覆蓋量
- 為了實現App 覆蓋裝置的最大化,保證它能夠在儘可能多的裝置中執行,可把App目標定位通用裝置族群。這樣做的目的,App會就可以使用所有裝置族群,(從通用裝置族群派生的)
- 限制App 適應某一種裝置
- 限制App適應某一類裝置
- 排除只支援某一特殊版本的裝置族群
UI 和通用輸入
UWP App能夠在具有不同特徵的裝置中執行。Windows10 提供新的通用控制元件,佈局皮膚和工具,來幫助開發自適應UI 。例如根據不同的螢幕解析度,相應的調節UI。
Windows 幫助你實現自適應UI:
1. 提供通用控制元件和佈局皮膚來根據螢幕解析度來最佳化UI
2. 常用輸入處理,可解決輸入模態多樣性的問題,無論透過觸控輸入,觸控筆,鍵盤,還是控制器,都能夠統一處理。
3.提供UI 設計輔助工具,能夠自適應不同的螢幕解析度。
4. 自適應擴充套件可調節解析度和DPI。
通用控制和佈局板
Windows 10 提供了一些新控制元件,比如日曆,拆分檢視,在此之前,只有Winodws Phone 提供Pivot 控制元件 ,現在,通用裝置族群也支援Pivot控制元件。而且控制元件也做了相應的調整,能夠適應大尺寸螢幕。
使用自適應Panels實現自適應介面
Layout Panel 指定子元素的尺寸和位置的值主要取決於螢幕尺寸,比如StackPanel 會指定子節點順序排放(垂直或水平)。Grid 與CSS 提供的Grid相似,每個介面元素都對應單元格。
新提供的RelativePanel 是一種佈局樣式,可以定義各介面元素之間的關係,當螢幕解析度發生變化時,介面元素會做出相應的調整來適應。RelativePanel能夠減少由於元素重新排列導致的一些效能問題。
如下,無論是橫向和縱向的,藍色按鈕始終在Texbox1的右邊,橙色按鈕會放在藍色按鈕下方。
<RelativePanel> <TextBox x:Name="textBox1" Text="textbox" Margin="5"/> <Button x:Name="blueButton" Margin="5" Background="LightBlue" Content="ButtonRight" RelativePanel.RightOf="textBox1"/> <Button x:Name="orangeButton" Margin="5" Background="Orange" Content="ButtonBelow" RelativePanel.RightOf="textBox1" RelativePanel.Below="blueButton"/> </RelativePanel>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28298702/viewspace-1962013/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Containerd 的前世今生和保姆級入門教程AI
- [UWP]依賴屬性1:概述
- SQLMap的前世今生(Part1)SQL
- 1.k8s的前世今生K8S
- 2020年的UWP(4)——UWP和等待Request的Desktop Extension
- UWP開發入門(25)——通過Radio控制Bluetooth, WiFiWiFi
- 智慧合約從入門到精通:智慧合約的前世今生
- MySQL 的前世今生MySql
- 遊戲的前世今生遊戲
- Mybatis的前世今生MyBatis
- IPD的前世今生
- RabbitMQ的前世今生MQ
- Serverless 的前世今生Server
- JavaScript的前世今生JavaScript
- WebP 的前世今生Web
- RunLoop的前世今生OOP
- 2020年的UWP(3)——UWP和desktop extension的簡單互動
- 2020年的UWP(5)——UWP和Desktop Extension的雙向互動
- 2021年的UWP(6)——長生命週期Desktop Extension向UWP的反向通知
- Webpack前世今生Web
- UWP學習目錄整理
- Unicode的前世今生Unicode
- HTTP/2.0的前世今生HTTP
- 元件化的前世今生元件化
- React ref 的前世今生React
- 外掛的前世今生
- Https的前世今生HTTP
- React Portal的前世今生React
- Android的前世今生Android
- React Mixin 的前世今生React
- UWP 透過 .NET 9 和Native AOT 的支援實現 UWP 應用的現代化
- UWP WinUI 製作一個路徑向量圖示按鈕樣式入門UI
- 深入理解 RxJava2:前世今生(1)RxJava
- 【UWP開發】如何判斷UWP應用在PC還是在xbox上執行?
- Serverless For Frontend 前世今生Server
- 一、MySQL前世今生MySql
- 資料庫的前世今生資料庫
- iOS Device ID 的前世今生iOSdev