版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、按照一般做法,剛學(xué)會如何導(dǎo)航,還是不夠的,因為要知道,手機里面的每個頁 面,就如同Web頁面一樣,是無狀態(tài)的。啥是無狀態(tài)?如果我們玩過 Web開發(fā)就明白了,當(dāng)你在當(dāng)前頁面輸入一些內(nèi)容,然后退回到前一頁面,再前進到該頁面,就會發(fā)現(xiàn),之前輸入的內(nèi)容可能會沒了。再比如吧,你在頁面A中進行了數(shù)據(jù)綁定,點擊按鈕后進行查詢并把查詢結(jié)果顯示在表格中,然后你點擊一個超鏈接,跳到D頁面,然后你再從D頁面退回A頁面,你會發(fā)現(xiàn),剛才查詢的結(jié)果就不會顯示了。這就是無狀態(tài),也就是說,在你導(dǎo)航離開當(dāng)前頁面后,當(dāng)前頁面不會保留任何操 作相關(guān)的數(shù)據(jù)。在手機應(yīng)用程序中同樣如此,所以,在導(dǎo)航離開當(dāng)前頁面時保存狀態(tài)信息, 而在 用
2、戶再次回到該頁面時,恢復(fù)狀態(tài)信息。具體做法是重寫兩個方法:1、OnNavigatedFrom,當(dāng)導(dǎo)航離開當(dāng)前頁面后調(diào)用,在這個方法中,要把狀態(tài)相關(guān)的數(shù)據(jù)保存;2、OnNavigatedTo ,當(dāng)用戶再次導(dǎo)航回該頁面時,該方法被調(diào)用,這時候取 出狀態(tài)信息并恢復(fù)。要讀寫狀態(tài)信息,用到頁面實例的 State屬性,它是一個字典,也就是鍵-值對Key - Value。F面我們來演示一下如何保存和恢復(fù)狀態(tài)信息。新建一個WP項目,隨便布局一下主頁面,反正做成類似撰寫郵件的頁面就行 了,然后放一個按鈕,點擊按鈕后打開電話撥號程序開始打電話。源碼打印?.2.p rivatevoid button
3、1_Click( object sender, RoutedEventArgs e)3.P honeCallTask cc =new P honeCallTask();4.cc.Dis pl ayName =5.cc.P honeNumber ="1342580073"6.cc.Show();7.接著重寫上面說的兩個方法,分別保存和讀取狀態(tài)。對于State屬性,不必用Add,直接用鍵和值設(shè)置就行了,比較我要保存姓名信息,就這樣寫:this.State"Name"=" 小紅"如果字典集合中沒有Name的鍵,會自動創(chuàng)建,如果有,就改寫其值
4、。對,你肯定想到了,和A中我們使用Session差不多。源碼打印?1.protectedoverride void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)2.3.this .State "content" = ContentTextBox.Text;4.this .State "title" = TitleTextBox.Text;5.base .OnNavigatedFrom(e);6.8.protectedoverride void OnNavigatedTo(
5、System.Windows.Navigation.NavigationEventArgs e)10.if ( this .State.ContainsKey( "title")12.this .TitleTextBox.Text = State"title" as string ;9.20.if ( this .State.ContainsKey( "content")this .ContentTextBox.Text = Statebase .OnNavigatedTo(e);"co
6、ntent" as string ;要注意的是,如果是讀取狀態(tài)信息時,記得先判斷要獲取數(shù)據(jù)的鍵是否存在, 如 果存在再取值,為什么?別忘了,當(dāng)應(yīng)用程序第一次啟動時,也會調(diào)用On NavigatedTo 方法,這時候,內(nèi)存中不可能保存任何狀態(tài)的,所以,在取狀 態(tài)信息時候要記得這點。然而,我經(jīng)過實驗發(fā)現(xiàn),在 WP 7.1的模擬器中,不需要保存狀態(tài),什么代碼都不寫,系統(tǒng)會自動保存狀態(tài),然后導(dǎo)航回去后,狀態(tài)信息依然存在。就是不知道真實手機上是不是這樣,如果是,那 WP也真是強大!fMNhalA A*頁面名稱Jtff 仝<rSSAHaJIIVQ4.xmlns:x ="htt p
7、: /頁面名稱F面是完整示例代碼。XAML源碼打印?1.vp hone:P honeA pp licatio nP age2.x:Class ="SaveStates.Main Page"3.xmlns ="htt p: /"VerticalAlignment="Top" FontSize ="StaticResource textSize"/>5.xmlns:p hone ="clr-names pace:Microsoft .P hone.Controls;assembly=Microsoft.
8、Phone"6.xmlns:shell="clr-names pace:Microsoft .P hone.Shell;assembly=Microsoft .P hon8.e"xmlns:d ="htt p:/ pression/blend/2008"xmlns:mc ="htt p:/schemas.o /mark up-co mp atibility/2006"mc
9、:Ignorable ="d" d:DesignWidth ="480" d:DesignHeight ="768"FontFamily ="StaticResource P honeFontFamilyNormal"FontSize ="StaticResource P honeFontSizeNormal"Foreground ="StaticResource PhoneForegroundBrush"Suppo rtedOrientations='Po rtra
10、itOrLandsca pe"Orientation="P ortrait"shell:SystemTray.lsVisible="True" xmlns:my ="clr-names pace:System;assembly=mscorlib" >vp hone:P honeA pp licatio nP age.Resources><my:Double x:Key ="textSize" >35</my:Double>v/p hone: PhoneA pp lica
11、tio nP age.Resources><!-LayoutRoot是包含所有頁面內(nèi)容的根網(wǎng)格->vGrid x:Name="LayoutRoot" Background ="Trans parent" >vGrid.RowDefinitions<RowDefinition Height ="Auto" /><RowDefinition Height ="*" /></Grid.RowDefinitions><!-Title Panel包含應(yīng)用程序的
12、名稱和頁標(biāo)題<Stack Panelx:Name="Title Panel"<TextBlockx:Name ="A pp licationTitle"Grid.Row ="0" Margin ="12,17,0,28">Text ="我的應(yīng)用程序Style="StaticResource P honeTextNormalStyle"/><TextBlock x:Name ="PageTitle" Text ="頁面名稱Mar
13、gin ="9,-7,0,0" Style ='StaticResource P honeTextTitle1Style"/>29.v/Stack Panel30.31.v!-Content Panel -在此處放置其他內(nèi)容->32.vGrid x:Name ="Content Panel"Grid.Row="133.vGrid.RowDefinitions>34.vRowDefinitionHeight="Auto"/>35.vRowDefinitionHeight="A
14、uto"/>36.vRowDefinitionHeight="Auto"/>37.vRowDefinitionHeight="*" />38.vRowDefinitionHeight="Auto"/>39.v/Grid.RowDefinitions>40.vTextBlock Grid.Row="0"Horizontal/AlignH,0,10"Name= "textblockTitle"Text ="標(biāo)題:"Margin =
15、"12,0,12,0">="Left" Margin ="13,1541.vTextBox Grid.Row ="1" HorizontalAlignment ="Stretch" Margin ="2" Name="TitleTextBox"VerticalAlignment="T op" />42.vTextBlock FontSize ="StaticResource textSize"HorizontalA
16、lignment ="Left" Margin ="13,10,0,5"Name="textBlock1"Text ="正文:"VerticalAlignment="Top" Grid.Row ="2" />43.<TextBoxGrid.Row ="3" HorizontalAlignment ="Stretch" Margin ="2" Name="ContentTextBox"V
17、erticalAlignment ="Stretch"TextWra pp ing ="Wra p" Vertica44.lScrollBarVisibilityvButton="Auto" />Content ="提/>"Grid.Row ="4" Height ="72" HorizontalAlignment ="Stretch" Margin ="2" Name="bu tton1" Vertic
18、alAlignment ="To p" Click ="button1_Click"45.v/Grid>46.v/Grid>47.48.<!-演示 App licationBar用法的示例代碼49.<!-vp hone:P honeA pp licatio nP age.A pp licationBar50.vshell:A pp licationBarIsVisible= "True" lsMenuEnabled ="True" >51.png"vshell:A pp li
19、cationBarlconButtonText ="按鈕 1" />IconUri="/lmages/a pp bar_button1.52.png"vshell:A pp licationBarlconButtonText ="按鈕 2" />IconUri="/Images/a pp bar_button2.53.vshell:A pp licationBar.Menultems54.vshell:A pp licationBarMenultemText="菜單項1" />55.vs
20、hell:A pp licationBarMenultemText="菜單項2" />56.v/shell:A pp licationBar.Menultems57.v/shell:A pp licationBar58.v/p hone:P honeA pp licatio nP age.A pp licationBar59.60.v/phone: PhoneA pp licatio nP age>C#源碼打印?1.usingSystem;2.usingSystem.Collections.Generic;3.usingSystem.Linq;4.usingSy
21、stem.Net;5.6.usingusingSystem.Windows;System.Windows.Controls;7.usingSystem.Windows.Documents;8.9.usingusingSystem.Windows.I nput;System.Windows.Media;10.usingSystem.Windows.Media.Animation;11.usingSystem.Windows.Sha pes;12.13.usingusingMicrosoft .P hone.Controls;Microsoft. Phone.Tasks;14.15.names pace SaveStates16.17.p ublicp artial class MainP age : P honeA pp licatio nP age18.19./構(gòu)造函數(shù)20.public Main Page()21.22.InitializeCo mpo nent();23.24.25.p rivatevoid button1_Click( object sender, RoutedEventArgs e)26.27.P honeCal
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 冀教版八年級下冊《Lesson 41 A Class of the World》同步練習(xí)卷
- 2024秋五年級英語上冊 Module 9 Unit 1 Are you feeling bored第2課時教案 外研版(三起)
- 2024物資設(shè)備購銷合同范本
- 2024秋九年級語文上冊 第4單元 15故鄉(xiāng)教案 新人教版
- 2024年一年級品生下冊 第四單元《主題2 我的問題卡片》教案 上海教科版
- 2024年五年級語文上冊 第八單元 27 我的長生果教案 新人教版
- 2024年四年級英語上冊 Unit 4 How's the weather today Lesson 21教案 人教精通版(三起)
- 2024處置不明確的合同履行地點
- 2024如何約定勞動合同的商業(yè)秘密條款
- 現(xiàn)代企業(yè)薪酬管理體系探究
- 2024年國家能源集團神華國能集團有限公司招聘筆試參考題庫含答案解析
- 第07課 回憶我的母親(教學(xué)課件) 八年級語文 (統(tǒng)編版)
- 智能制造系統(tǒng)產(chǎn)線優(yōu)化與生產(chǎn)調(diào)度技術(shù)
- 重點崗位廉潔教育培訓(xùn)課件
- 完整2024年開工第一課課件
- 基于Java web的校園二手書交易平臺
- 社交工程與網(wǎng)絡(luò)安全意識培訓(xùn)
- 2016-2023年江西司法警官職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 三廢環(huán)保管理培訓(xùn)
- 《昆蟲記》讀書分享主題活動
- 模具企業(yè)接單流程培訓(xùn)方案
評論
0/150
提交評論