簡述Windows Phone 7應(yīng)用程序開發(fā)平臺
原創(chuàng)51CTO曾經(jīng)報(bào)道過微軟推廣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è)計(jì)視圖中,這個頁面顯示為Windows Phone 7用戶界面的預(yù)覽效果,如圖1所示,你可以拖放控件到設(shè)計(jì)界面,實(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è)計(jì)資料提供的信息,所有Windows Phone 7設(shè)備的屏幕通通是WVGA,無論屏幕大小如何,分辨率通通是800x480,固定的分辨率給UI設(shè)計(jì)帶來了極大的方便,最大的缺點(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
【編輯推薦】















 
 
 



 
 
 
 