簡述Windows Phone 7應用程序開發平臺
原創51CTO曾經報道過微軟推廣Windows Phone 7時,Silverlight程序員必將成為贏家。“Silverlight for Windows Phone”是Windows Phone 7的應用程序開發平臺。為Windows Phone 7開發Silverlight UI必須得了解Windows Phone 7應用程序開發平臺Silverlight for Windows Phone。當你創建一個新的Windows Phone應用程序時,新解決方案包括Silverlight MainPage.xaml頁面,在設計視圖中,這個頁面顯示為Windows Phone 7用戶界面的預覽效果,如圖1所示,你可以拖放控件到設計界面,實時查看Windows Phone 7屏幕的布局預覽效果。當你在Visual Studio 2010中開發Silverlight應用程序時,如果你修改了XAML代碼,你的修改將會反映到Windows Phone 7模擬器屏幕上。
圖 1 Visual Studio 2010中MainPage.xaml預覽視圖,右側為XAML代碼
根據設計資料提供的信息,所有Windows Phone 7設備的屏幕通通是WVGA,無論屏幕大小如何,分辨率通通是800x480,固定的分辨率給UI設計帶來了極大的方便,最大的缺點是用鼠標或開發工作站的觸摸板無法模擬多點觸控,但不要灰心,在CodePlex上有一個開源項目叫做Multi-Touch Vista,它允許你使用多個鼠標模擬兩根手指在屏幕上實現多點觸摸。
Multi-Touch Vista提供了兼容Windows 7的驅動,可以讓多個鼠標兼容Windows Phone 7模擬器,例如,你可以在筆記本電腦上接上一個USB鼠標,加上筆記本自帶的觸摸板,就可以用它們模擬兩根手指實現多點觸摸。
Windows Phone應用程序的項目結構和傳統的Silverlight應用程序結構類似,但Windows Phone項目增加了一些專有引用和文件,圖2顯示了一個WPBusinessApp示例項目的項目結構,它是Visual Studio 2010創建的Windows Phone應用程序項目默認結構。
圖 2 解決方案資源管理器顯示的Windows Phone應用程序項目結構
你會發現在Properties文件夾下有一個WMAppManifest.xml文件,這個XML文件定義了從操作系統角度來看的資源和功能,下面的代碼片段顯示了這個文件的默認內容,假設項目名是WPBusinessApp:
- <?xml version="1.0" encoding="utf-8"?>
- <Deployment
- xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment"
- AppPlatformVersion="7.0">
- <App xmlns="" ProductID="{41bdea14-687b-4815-93b3-a51759f18a09}"
- Title="WPBusinessApp" RuntimeType="Silverlight" Version="1.0.0.0"
- Genre="apps.normal" Author="WPBusinessApp author"
- Description="Sample description" Publisher="WPBusinessApp">
- <IconPath IsRelative="true"
- IsResource="false">ApplicationIcon.png</IconPath>
- <Capabilities>
- <Capability Name="ID_CAP_NETWORKING" />
- <Capability Name="ID_CAP_LOCATION" />
- <Capability Name="ID_CAP_SENSORS" />
- <Capability Name="ID_CAP_MICROPHONE" />
- <Capability Name="ID_CAP_MEDIALIB" />
- <Capability Name="ID_CAP_GAMERSERVICES" />
- <Capability Name="ID_CAP_PHONEDIALER" />
- <Capability Name="ID_CAP_PUSH_NOTIFICATION" />
- <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
- </Capabilities>
- <Tasks>
- <DefaultTask Name ="_default"
- NavigationPage="MainPage.xaml"/>
- </Tasks>
- <Tokens>
- <PrimaryToken TokenID="WPBusinessAppToken"
- TaskName="_default">
- <TemplateType5>
- <BackgroundImageURI IsRelative="true"
- IsResource="false">Background.png</BackgroundImageURI>
- <Count>0</Count>
- <Title>WPBusinessApp</Title>
- </TemplateType5>
- </PrimaryToken>
- </Tokens>
- </App>
- </Deployment>
WMAppManifest.xml文件中的<Capabilities>部分定義了Windows Phone需要的功能列表,默認情況下包含了所有的功能,但為了安全起見,你最好移除不需要的功能,如果你嘗試使用一個功能列表中未包含的功能,你會收到UnauthorizedAccessException異常。
功能列表中的名字也很容易理解,例如,ID_CAP_LOCATION表示你要訪問包括在System.Device.Location命名空間中的本地(location)服務,但有些功能關聯的命名空間和類很多。
WMAppManifest.xml文件還定義了圖標,背景圖像和應用程序標題,你可以用PNG位圖文件作為圖標,默認圖標文件是ApplicationIcon.png,默認背景圖像是Backgroud.png,你可以編輯XML代碼或在項目屬性的“應用程序”標簽頁修改這些屬性的值,如圖3所示。
默認情況下,項目包含兩個Windows Phone相關的引用:Microsoft.Phone和Microsoft.Phone.Interop,Windows.Phone提供訪問Microsoft.Phone.Controls和Microsoft.Phone.Shell的功能,如果你要使用傳感器,還需要增加Microsoft.Devices.Sensors的引用。
原文出處:http://www.drdobbs.com/windows/227701092;jsessionid=0LPPSGFA3UDNBQE1GHPSKH4ATMY32JVN
原文名:Developing a Silverlight UI for Windows Phone 7
作者:Gaston Hillar
【編輯推薦】