簡述Windows Phone 7應(yīng)用程序開發(fā)平臺
原創(chuàng)51CTO曾經(jīng)報道過微軟推廣Windows Phone 7時,Silverlight程序員必將成為贏家。“Silverlight for Windows Phone”是Windows Phone 7的應(yīng)用程序開發(fā)平臺。為Windows Phone 7開發(fā)Silverlight UI必須得了解Windows Phone 7應(yīng)用程序開發(fā)平臺Silverlight for Windows Phone。當(dāng)你創(chuàng)建一個新的Windows Phone應(yīng)用程序時,新解決方案包括Silverlight MainPage.xaml頁面,在設(shè)計視圖中,這個頁面顯示為Windows Phone 7用戶界面的預(yù)覽效果,如圖1所示,你可以拖放控件到設(shè)計界面,實(shí)時查看Windows Phone 7屏幕的布局預(yù)覽效果。當(dāng)你在Visual Studio 2010中開發(fā)Silverlight應(yīng)用程序時,如果你修改了XAML代碼,你的修改將會反映到Windows Phone 7模擬器屏幕上。
圖 1 Visual Studio 2010中MainPage.xaml預(yù)覽視圖,右側(cè)為XAML代碼
根據(jù)設(shè)計資料提供的信息,所有Windows Phone 7設(shè)備的屏幕通通是WVGA,無論屏幕大小如何,分辨率通通是800x480,固定的分辨率給UI設(shè)計帶來了極大的方便,最大的缺點(diǎn)是用鼠標(biāo)或開發(fā)工作站的觸摸板無法模擬多點(diǎn)觸控,但不要灰心,在CodePlex上有一個開源項(xiàng)目叫做Multi-Touch Vista,它允許你使用多個鼠標(biāo)模擬兩根手指在屏幕上實(shí)現(xiàn)多點(diǎn)觸摸。
Multi-Touch Vista提供了兼容Windows 7的驅(qū)動,可以讓多個鼠標(biāo)兼容Windows Phone 7模擬器,例如,你可以在筆記本電腦上接上一個USB鼠標(biāo),加上筆記本自帶的觸摸板,就可以用它們模擬兩根手指實(shí)現(xiàn)多點(diǎn)觸摸。
Windows Phone應(yīng)用程序的項(xiàng)目結(jié)構(gòu)和傳統(tǒng)的Silverlight應(yīng)用程序結(jié)構(gòu)類似,但Windows Phone項(xiàng)目增加了一些專有引用和文件,圖2顯示了一個WPBusinessApp示例項(xiàng)目的項(xiàng)目結(jié)構(gòu),它是Visual Studio 2010創(chuàng)建的Windows Phone應(yīng)用程序項(xiàng)目默認(rèn)結(jié)構(gòu)。
圖 2 解決方案資源管理器顯示的Windows Phone應(yīng)用程序項(xiàng)目結(jié)構(gòu)
你會發(fā)現(xiàn)在Properties文件夾下有一個WMAppManifest.xml文件,這個XML文件定義了從操作系統(tǒng)角度來看的資源和功能,下面的代碼片段顯示了這個文件的默認(rèn)內(nèi)容,假設(shè)項(xiàng)目名是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需要的功能列表,默認(rèn)情況下包含了所有的功能,但為了安全起見,你最好移除不需要的功能,如果你嘗試使用一個功能列表中未包含的功能,你會收到UnauthorizedAccessException異常。
功能列表中的名字也很容易理解,例如,ID_CAP_LOCATION表示你要訪問包括在System.Device.Location命名空間中的本地(location)服務(wù),但有些功能關(guān)聯(lián)的命名空間和類很多。
WMAppManifest.xml文件還定義了圖標(biāo),背景圖像和應(yīng)用程序標(biāo)題,你可以用PNG位圖文件作為圖標(biāo),默認(rèn)圖標(biāo)文件是ApplicationIcon.png,默認(rèn)背景圖像是Backgroud.png,你可以編輯XML代碼或在項(xiàng)目屬性的“應(yīng)用程序”標(biāo)簽頁修改這些屬性的值,如圖3所示。
圖 3項(xiàng)目屬性窗口中的“應(yīng)用程序”頁
默認(rèn)情況下,項(xiàng)目包含兩個Windows Phone相關(guān)的引用: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
【編輯推薦】