UWP開發入門系列筆記之(零):UWP的前世今生__UWP

來源:互聯網
上載者:User
引言

在本篇文章中,可以掌握以下知識: 裝置族群,如何決定目標裝置 新的UI控制項和新面板協助你適應不同的裝置特徵

 

從Windows 8系統開始,微軟就 引入了WindowsRT(Windows Runtime),它是Windows App 模型的一個中間階段。希望能夠成為跨平台 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>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.