Windows Phone 學習筆記 (2) - Hello Windows Phone 7

  • 1427
  • 0

藉由簡單的專案來瞭解Windows Phone的基本結構。

Photo by lob.cn

(本文於 http://blog.tonycube.com 同步發表)

接下來藉由簡單的專案來瞭解Windows Phone的基本結構。

§ Windows Phone 專案

安裝完 SDK 後,VS(Visual Studio)的樣板會多出「Silverlight for Windows Phone」,點選樣板中的「Windows Phone應用程式」即可建立專案。  

§ 檔案結構

※xaml及cs檔

Windows Phone 應用程式以 xaml 檔來設計畫面,以 cs 檔來撰寫程式邏輯。在方案總管中點擊 MainPage.xaml 左方的小箭頭,會看到相關的 MainPage.xaml.cs 出現在xaml檔案之下。 MainPage.xaml 的任務就是 App 版面的編排。編輯視窗被分為兩個,一個用來顯示 App 實際的呈現結果;另一個則是 xaml 碼。兩個其實是指向同一個東西,也就是版面的呈現,當你直接拖拉控制項到畫面時,VS 會自動新增對應的 xaml 標籤;相對的,當你直接在xaml檔中手動鍵入標籤時,畫面也會即時呈現。 C# 程式碼當然就是寫在 MainPage.xaml.cs 中。 

※Propertys\WMAppmanifest.xml 

這個檔案用來記錄應用程式的相關屬性描述,以及定義應用程式的功能性(決定是否使用硬體裝置的某項功能)。

<App>標籤:

  • ProductID:代表應用程式的 GUID 字串
  • Title:專案的預設名稱,這裡的文字也會顯示在應用程式清單列表
  • RuntimeType:設定應用程式是 Silverlight 或是 XNA 的類型
  • Version:應用程式的版本編號
  • Genre:當應用程式為 Silverlight 時會為 apps.normal,apps.game 則為 XNA
  • Author:開發者名稱
  • Description:應用程式的描述 (說明)
  • Publisher:這個值預設會是專案的名稱,當您的應用程式有使用到 Push 的相關功能,這個值是一定要有的

<Capabilities>標籤: 

在這個區塊中描述了應用能夠使用的功能性,例如能否使用網路等等,若刪除就是不能使用。

<Tasks>標籤: 

這個是應用程式內部使用的,通常不需要修改。但若第一個顯示的頁面名稱不是 MainPage 的話就必須把 NavigationPage 屬性的值修改成第一個顯示的頁面的名稱。 

<Tokens>標籤: 

用來設定當應用程式被加入 Tile (即WP7的主畫面的動態磚)時的相關設定。 

※App.xaml

App.xaml 與 App.xaml.cs 預設包含了 Lifecycle (應用程式生命週期) 的相關事件處理,包含初次啟動、失去焦點 (通常發生在使用者啟動另外一個應用程式) 等等的相關處理。也可以在此定義一些全域的資源 (resource) 或是全域的方法來使用。

※ApplicationIcon.png

應用程式列表中使用的圖形,尺寸為 63 x 63 pixels。

※Background.png 

Tile (動態磚) 上的應用程式的背景圖案,尺寸為 173 x 173 pixels。

※SplashScreenImage.jpg 

應用程式啟動後,MainPage.xaml 載入完成之前的等待畫面,名稱不能變動,編譯選項必須為內容 (content),尺寸為 480 x 800 pixels。

§ XAML

XAML 是基於 XML 發展出的一種描述語言,專門用於描述 Silverlight/WPF 的介面語言。 在XAML中使用 xmlns 來引入命名空間,在後續的 XAML 中就可以使用相關的控制項或其命名空間中的類別。  在 XAML 中可以使用 StoryBoard 這個標籤來製作一系列的動畫,若動畫太過複雜,通常會使用微軟的另一設計工具 Blend 來製作。  雖然可以透過拖拉控制項的方式來設計畫面,但有些時候還是必須以手動輸入方式來設計 XAML,像是給資料綁定用的資料樣板等,所以建議要熟悉 XAML 的語法。  

§ 第一支 Windows Phone App

每個 Windows Phone 的預設頁面,最上方都會有 ApplicationTitle 及 PageTitle 這兩個文字框,我們寫一支超級簡單的程式:按下按鈕,將這兩個 Title 中的文字換掉。  首先,從工具箱中拉一個按鈕(Button)到畫面中,接著去改變按鈕的 Content 屬性為"Say",然後在按鈕上連點兩下來設定 Click 事件。 VS會自動將編輯畫面切換到cs檔,在按鈕處理函式中輸入程式碼來改變 Title 的值:

private void button1_Click(object sender, RoutedEventArgs e)
{
    ApplicationTitle.Text = "Hello Windows Phone";
    PageTitle.Text = "Seven";
}

完成後就可執行了。第一次執行時會開啟模擬器,之後不必把它關掉,只要在 VS 中停止程式執行即可,之後可以反覆利用模擬器而無需開開關關。