Windows Phone 7 後退記錄管理與起始頁的程式塊管理

來源:互聯網
上載者:User
  1. 導航記錄管理,起始導航記錄是用於一個導航堆棧來管理的。如完成以下導航:MainPage ->Page1 ->Page
    2
     ->Page 3,
    其實就形成了一個如的導航堆棧:

所有當按“返回鍵”時也是按後進先出得原則進行導航,但是思考如下問題:

  • 它的原理是什麼呢?每個應用程式都有一個 RootFrame。當使用者導航到該頁面時,導航架構會將應用程式的每個頁面或 PhoneApplicationPage 的執行個體設定為架構的Content,同時RootFrame有一個RootFrame.BackStack。
  • 它是怎樣去管理和儲存這個頁面記錄的呢?RootFrame.BackStack類似一個堆棧的操作,它儲存記錄中的條目(JournalEntry)類型。
  • 是否可以去控制和操作這個堆棧呢?當然是可以去控制這個堆棧,如同我們去操作一個堆棧的資料結構一樣,它也有Pop(OS進行操作)和Push操作,push是用RootFrame.RemoveBackEntry()來完成的。


// The BackStack property is a collection of JournalEntry objects.            foreach (JournalEntry journalEntry in RootFrame.BackStack.Reverse())            {                historyListBox.Items.Insert(0, i + ": " + journalEntry.Source);                i++;            }
    // If RemoveBackEntry is called on an empty back stack, an InvalidOperationException is thrown.            // Check to make sure the BackStack has entries before calling RemoveBackEntry.            if (RootFrame.BackStack.Count() > 0)                RootFrame.RemoveBackEntry();

2.  怎樣管理開始頁中的磁條?

我們在頁面中添加一個checkbox,當選中的時候,此頁就洗到開始頁中,否則從開始頁中取出。

/// <summary>/// Toggle pinning a Tile for this page on the Start screen./// </summary>private void PinToStartCheckBox_Click(object sender, RoutedEventArgs e){   // Try to find a Tile that has this page's URI.   ShellTile tile = ShellTile.ActiveTiles.FirstOrDefault(o => o.NavigationUri.ToString().Contains(NavigationService.Source.ToString()));   if (tile == null)   {      // No Tile was found, so add one for this page.      StandardTileData tileData = new StandardTileData { Title = PageTitle.Text };      ShellTile.Create(new Uri(NavigationService.Source.ToString(), UriKind.Relative), tileData);   }   else   {      // A Tile was found, so remove it.      tile.Delete();   }}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.