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