我不喜歡把事情搞得太複雜,讓我用很簡單的方式分享經驗,

並且用一種追逐時尚的心態來學習新的技術,Come on ! Just do it !

 

 

 

 

 

 

 

 

 

最近開始在研究一個似乎即將走入歷史的玩意( UWP ),

這幾天看了網路上的評價,大多數的人都不看好這東西,至於為什麼麻,

我自己在猜,很有可能是因為Window phone的銷量不如預期的緣故,

這玩意其實運用層面算挺廣,它提供每個執行Windows10的裝置上使用通用App平台,

但 !!! 關鍵在上一句,就是你得是Windows 10;UWP的核心API在所有Windows裝置上是相同的,

所以你的Apps可以運行在桌上型電腦、Xbox、混合實境耳機...etc。

其實這願景不錯,但問題就是在手機的銷量上比不過Apple也打不過Android,

所以,目前看來,雞肋的程度似乎頗大。

 

對了,研究的初衷是要將程式上架到Windows App,起初我以為是一定要用這玩意來撰寫程式,

但後來研究發現,根本是兩回事,這玩意比較傾向於開發Windows phone的app,至於要發布,

其實只需要去microsoft裡面註冊開發者帳號→blablabla→即可發布。

這裡提供網址給大家自行使用 : https://blogs.msdn.microsoft.com/msdntaiwan/2014/10/24/window-app/

 

 

好了,既然決定要玩一下這玩意,當然免不了來個HelloWorld囉,

前面幾個步驟,在MSDN上面其實都有,而且還有影片教學,( 可以語音直接說出Hello world的那個 ),

我這裡就不再教了。

 

主要提醒事項有幾點 :

1. Microsoft有放出一些Sample在github,但是你的作業系統必須是windows10 ,你的vsiual studio必須是2017,你的SDK也必須更新到最新,如此如此一來一來,你就能省去很多動作和時間。 ( 至於微軟的範例是在這邊 : https://docs.microsoft.com/zh-tw/windows/uwp/get-started/get-uwp-app-samples ) 大家有空也可以去參考一下。

 

2. 就是雖然這玩意C++也可以寫,但是我真心不建議用C++寫,寧可疼痛點轉C#去寫,也不要用C++,原因是因為.....你寫了你就知道了,那個陣痛...阿嘶....! 有感。

 

3. xaml這玩意如果沒學過的人,還是得花時間去了解一下,對於沒寫過android或app的人來說,這玩意會有點陌生,不過說真的並不是挺難的,了解一下也就可以了。

 

 

現在,我們直接跳者開始吧,

在這邊我先放我已經寫好的Hello world的apps,其實也沒有很難,大家看一下了解一下就好。

 

 

這個就是跑出來的程式

而裡面就是這樣 :

<Page

    x:Class="HelloWorld.MainPage"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:local="using:HelloWorld"

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

    mc:Ignorable="d"

    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

 

    <Grid>

        <TextBlock Text="Hello,world!" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>

    </Grid>

</Page>

 

我來解釋一下,<Grid>是一種布局,Textblock是放文字的"物件",至於Page的意思是一個程式頁面的root元素,表示當前的XAML代碼是一個Page,當前的Page的其他所有UI元素都必須在Page的元素下面。

 

 

  1. Page表示一個程式頁面的root element,表示當前的XAML代碼是一個Page,當前Page的其他所有UI元素都必須在Page元素的下面.
  2. Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> Background表示設置了當前頁面的背景,取值為ThemeResource ApplicationPageBackgroundThemeBrush的意思是使用系統的主題資源背景”.
  3. x:Class="HelloWorld.MainPage" X:Class代表當前XAML文件關聯的後台代碼文件是HelloWorld.MainPage,通過這個設置,編譯器就會自動在項目中找到HelloWorld.MainPage類與當前的頁面關聯起來進行編譯。
  4. xmlns:local="using:HelloWorld" xmlns:local表示當前的頁面引入的命名空間標示符號,通過這個標示符號,可以在XAML頁面裡面訪問所指向的空間得類,當然名字也不一定要用local,也可以用xmlns:EricControl之類的,這個名稱最後是可以跟引入的內容的特點相關。
  5. xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation xmlns代表的是默認的空間,如果再UI裡面控件沒有前綴則代表它屬於默認的名字空間。例如,MainPage.xaml文件裡面的Grid標籤。
  6. xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml 代表專屬的名字空間,例如一個控件裡面有一個屬性叫做Name, x:Name則代表這個xaml的名字空間。
  7. xmlns:d=http://schemas.microsoft.com/expression/blend/2008 d表示呈現一些設計時的數據,而應用真正運行起來時會幫我們忽略掉這些運行時的數據。
  8. xmlns:mc=http://schemas.openxmlformats.org/markup-compatibility/2006 xmlns:mc表示標記兼容性相關的內容,這裡主要配合xmlns:d去使用,它包含ignorable         (忽略)屬性,可以在運行時,忽略掉這些設計時的數據。
  9. mc:Ignorable="d" mc:Ignorable=”d”就是告訴compile在實際運行的時候忽略設計時設置的值,因為在visual studio(vs)裡面的可視化編成介面可以指定一些設定相關的屬性。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

全站熱搜

Eric 發表在 痞客邦 留言(0) 人氣()