WindowsPhone項(xiàng)目組織結(jié)構(gòu)&簡(jiǎn)單登陸例子(上)
一:準(zhǔn)備好開(kāi)發(fā)環(huán)境,win7+VS2010sp1+wp7 sdk7.1
注釋?zhuān)翰僮飨到y(tǒng)是必須是WIN7的,當(dāng)然XP上安裝VS2010 Express for window phone 也是有的。可參考:http://www.iwp7.com/archives/3882
我這里用的是WP7 SDK7.1RC版,最新的,增加了500多項(xiàng)新特性。下載地址是:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27153
我用的是旗艦版本的VS2010,因?yàn)樗詭Я撕芏鄸|西提供開(kāi)發(fā)使用,不單是WP7支持,很遺憾的是我在安裝VS2O10后再安裝WP7 SDK 7.1RC 竟然報(bào)不能安裝,它需要的是SP1支持,所以呢,我就更新了開(kāi)發(fā)工具為VS2010SP1,大家也麻煩點(diǎn)吧。地址是:http://www.microsoft.com/download/en/details.aspx?id=23691
介紹完開(kāi)發(fā)工具后,我們就來(lái)開(kāi)發(fā)吧,其實(shí)安裝時(shí)需要很長(zhǎng)時(shí)間的。
二:File-->New Project,我們會(huì)看到許多項(xiàng)目模板,這里我們先選擇第一項(xiàng)window phone application吧。
1:window phone application:標(biāo)準(zhǔn)的單頁(yè)面WP7應(yīng)用程序。
2:window phone Databound application:多頁(yè)面WP7應(yīng)用程序。它提供了一個(gè)Title 和Summary --(標(biāo)題欄、備注欄),然后在以L(fǎng)IST列表方式呈現(xiàn)出來(lái).
3:window phone class library :提供使用的類(lèi)庫(kù),這是作為用戶(hù)封裝類(lèi)庫(kù)項(xiàng)5目使用的。
4:Windows Phone Panorama Application:全景圖的應(yīng)用程序開(kāi)發(fā)模板,針對(duì)屏幕比較小但要顯示大內(nèi)容的時(shí)用到,我們可以拖動(dòng)畫(huà)面來(lái)查看全部?jī)?nèi)容。
5:Windows Phone Pivot Application:把Application 界面當(dāng)成圓形轉(zhuǎn)輪,在里面的父窗口都是以一個(gè)軸為中心點(diǎn),不管用戶(hù)怎么選擇都會(huì)輪換切換。類(lèi)似于Tab.
6:其它的比如播放器使用的就不一一介紹了。
三:認(rèn)識(shí)項(xiàng)目。
這里我們一一說(shuō)明:
1:App
App.xaml:這里主要存放一些全局使用的資源,比如樣式Style資源等。也定義了軟件生命周期的各個(gè)事件,
- <shell:PhoneApplicationService
- Launching="Application_Launching" Closing="Application_Closing"
- Activated="Application_Activated" Deactivated="Application_Deactivated"/>
App.xaml.cs:這里主要是軟件生命周期中事件實(shí)現(xiàn),已經(jīng)保存全局變量或者數(shù)據(jù)等(比如:登陸用戶(hù)賬號(hào),密碼等),同時(shí)也包括了軟件頂級(jí)容器:PhoneApplicationFrame
以上可以看出App主要是保存或者是定義全局的地方,你寫(xiě)程序的時(shí)候可以考慮需要保存全局的。:
2:MainPage
MainPage.xaml:主要是定義軟件的UI界面,是個(gè)“分部類(lèi)”,是繼承phone:PhoneApplicationPage 頁(yè)面的。在這里我們一般是書(shū)寫(xiě)軟件的UI,當(dāng)然也可以保存Style資源,動(dòng)畫(huà)資源,但這個(gè)是局部的,在本界面有效。
- xmlns 默認(rèn)的空間,如果在UI里面控件沒(méi)有前綴則代表它屬于默認(rèn)的名字空間。例如,mainPages 里面的Grid 標(biāo)簽。
- xmlns:x代表專(zhuān)屬的名字空間,比如一個(gè)控件里面有一個(gè)屬性叫name 那么 x:name 則代表這個(gè)name 代表xaml的名字空間。
- xmlns:phone 包含在Miscroft.phone 的引用DLL
- xmlns:shell 包含在Miscroft.sell的引用DLL,此文件可以幫助我們管理就用的生命周期。
- xmlns:d 呈現(xiàn)一些設(shè)計(jì)時(shí)的數(shù)據(jù),而應(yīng)用真正運(yùn)行起來(lái)時(shí)會(huì)幫我們忽略掉這些運(yùn)行時(shí)的數(shù)據(jù),比如下文件的d:DesignWidth="480" d:DesignHeight="768"然后在如下的名字空間會(huì)忽略掉這些數(shù)據(jù)。
- xmlns:mc 布局的兼容性,這里主要配合x(chóng)mlns:d 使用,它包含Ignorable屬性,可以在運(yùn)行時(shí)忽略掉這些設(shè)計(jì)時(shí)的數(shù)據(jù)。
MainPage.xaml.cs:這個(gè)內(nèi)置類(lèi),與MainPage.xaml合并為一個(gè)類(lèi),這里主要是書(shū)寫(xiě)C#,VB代碼的地方,以及處理事件,播放動(dòng)畫(huà)等等。
3:ApplicationIcon.png(應(yīng)用程序ICON),Background.png(程序ICon背景),SplashScreenImage.jpg(加載歡迎頁(yè)面圖)
4:AppManifest.xml:
應(yīng)用列表,會(huì)打包并發(fā)布,文件作用是把我們需要布署和發(fā)布的所有文件列表列出來(lái)。
5:AssemblyInfo.cs:程序集中包含的軟件名稱(chēng)、語(yǔ)言版本以及公司信息等。
6:WMAppManifest.xml:包含了Wp7 的一些特殊屬性,定義可用能力,讓它支持比如游戲服務(wù)、本地化、網(wǎng)絡(luò)鏈接、瀏覽器等功能; 默認(rèn)啟動(dòng)界面任務(wù)類(lèi);還可以定義應(yīng)用程序的圖片等.
- <Capabilities>
- <Capability Name="ID_CAP_GAMERSERVICES"/>
- <Capability Name="ID_CAP_IDENTITY_DEVICE"/>
- <Capability Name="ID_CAP_IDENTITY_USER"/>
- <Capability Name="ID_CAP_LOCATION"/>
- <Capability Name="ID_CAP_MEDIALIB"/>
- <Capability Name="ID_CAP_MICROPHONE"/>
- <Capability Name="ID_CAP_NETWORKING"/>
- <Capability Name="ID_CAP_PHONEDIALER"/>
- <Capability Name="ID_CAP_PUSH_NOTIFICATION"/>
- <Capability Name="ID_CAP_SENSORS"/>
- <Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
- <Capability Name="ID_CAP_ISV_CAMERA"/>
- <Capability Name="ID_CAP_CONTACTS"/>
- <Capability Name="ID_CAP_APPOINTMENTS"/>
- </Capabilities>
- <Tasks>
- <DefaultTask Name ="_default" NavigationPage="MainPage.xaml"/>
- </Tasks>
- <Tokens>
- <PrimaryToken TokenID="PhoneAppToken" TaskName="_default">
- <TemplateType5>
- <BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
- <Count>0</Count>
- <Title>PhoneApp</Title>
- </TemplateType5>
- </PrimaryToken>
- </Tokens>
- </App>
- </Deployment>