Windows8 Metro應用開發之C#(1)- 項目模板(Project Templates)


新建模板

打開Visual Studio 11,新建項目 -> 展開Visual C# -> 點擊Windows Metro Style,我們可以看到微軟在C#開發Windows Metro應用程序中提供了三種項目模板。

 

Blend中我們同樣也可以看到: 

 

這三種模板分別可以為我們快速創建不同風格的應用程序。

拆分應用程序(Split Application):在已分組的項之間導航的Windows Metro風格應用程序的兩頁項目。第一頁允許組選擇,而第二頁顯示項列表以及選定項的詳細信息。

空白應用程序(Blank Application):未預定義控件或布局的Windows Metro風格應用程序的單頁項目。

網格應用程序(Grid Application):在多個項組之間導航的Windows Metro風格應用程序的多頁項目。專用頁顯示組合項的詳細信息。

 

實際上三種模板的項目結構大致一樣,只是預定義了一些控件和布局,所以即使我創建了空白應用程序,在下面我也可以右擊解決方案 -> 添加 –> 新建項 來自己搭建其他樣式模板。

 

 

好了,這里就不多說了,下面以空白應用程序模板為例,進一步了解。 

項目結構

選擇項目模板后,Visual Studio會自動生成預定義的項目結構。 

 

 

從上面圖中可以看到,項目由Assets文件夾、Common 文件夾、App.xaml頁、BlankPage.xamlBlankApplication_TemporaryKey.pfxPackage.appxmanifest組成。

如果你有Silverlight或者WPF項目經驗,你會發現相比Silverlight/WPF項目,項目中多了一個Common文件夾,包含一些類和資源,一個BlankApplication_TemporaryKey.pfx文件和Package.appxmanifest文件。

Ø BlankApplication_TemporaryKey.pfx ----- 微軟代碼簽名證書

 

Ø Package.appxmanifest------ 包含描述你的應用的元數據,包括顯示名稱、說明、徽標和功能。

Metro 風格應用在安全容器中運行,對文件系統、網絡資源和硬件具有有限的訪問權限。 無論用戶何時從 Windows 應用商店安裝應用,Windows 都會查看文件中的元數據Package.appxmanifest以確定應用需要執行哪些功能。例如,某個應用可能需要訪問 Internet 中的數據、用戶文檔庫中的文檔,或用戶的攝像頭和麥克風。當應用安裝完成后,它會向用戶顯示所需的功能,而用戶必須授予相應的權限才能讓它訪問這些資源。如果應用沒有請求並接收所需要的某個資源的訪問權限,則當用戶運行它時,系統將禁止其訪問該資源。

 

Ø Common文件夾------ 包含了一些類和資源,給項目和模板項添加依賴。

  

下面看看文件清單:

   

文件名

描述

StandardStyles.xaml

預定義了樣式和模板供項目和模板項實用。

Readme.txt

信息描述

BindableBase.cs

這是一個基類,提供了INotifyPropertyChanged的實現。

BooleanNegationConverter.cs

XAML中使用的轉換器。轉換一個布爾值。

BooleanToVisibilityConverter.cs

XAML中使用的轉換器。轉換到可見狀態的布爾值。

LayoutAwarePage .cs

具有能夠適應不同布局和視圖的頁面功能的基類。主要是用來監聽視圖狀態更改事件和頁面Visual State切換的響應。你可以重寫此行為,提供的自定義Visual State名稱仍然使用在這個文件中提供的事件代碼。例如:用戶有時需要顯示不同的UI時(如用戶登錄與注銷),你可以使用兩個不同的Visual State名稱對應不同的UI,但仍然使用在這個文件中提供的相同事件代碼。

RichTextColumns.cs

為網格應用程序定義了Grid文本樣式及布局。

仔細查看Common里的文件會發現,大多為項目模板提供的基類都是繼承了Windows提供的基類並實現了一些常用功能。
public  abstract  class BindableBase : INotifyPropertyChanged
{

}
public  class LayoutAwarePage : Page
{

}
public  sealed  class BooleanNegationConverter : IValueConverter
{

}
public  sealed  class BooleanToVisibilityConverter : IValueConverter
{

}
public  sealed  class RichTextColumns : Panel
{

所以,如果你希望快速開發或沒有現有框架的話,可以直接使用Windows Metro為你創建的項目模板,當然如果你希望重寫架構的話,也可以將項目中自動生成的類與資源刪除,自己重寫實現以上功能。

源碼下載 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM