windows phone幾種頁面事件的執行順序及區別

來源:互聯網
上載者:User

事件觸發順序先後是

進入頁面:OnNavigatedTo(控制項還沒有被載入) -> Loaded (控制項已經載入完畢)

離開頁面:OnNavigatingFrom(頁面控制項還存在) -> OnNavigatedFrom(頁面控制項還存在) 

      ->  Unloaded(執行完畢後進入第二個頁面)

(1)OnNavigatedTo方法:當頁面變為架構中的活動頁面時調用。

    一般重寫OnNavigatedTo事件用來檢查導航請求以及準備要顯示的頁面。比如準備相關的請求載入的資料,一般是使用OnNavigatedTo方法,而不是使用Loaded事件處理函數。最好使用 OnNavigatedTo 方法,因為只在每次頁面成為活動頁面時調用該方法一次。Silverlight 架構在每次將元素添加到視覺化樹狀結構時引發 Loaded 事件,在啟用某一頁面時該事件可能會多次發生

    對於每個請求都調用 OnNavigatedTo 方法,甚至在從緩衝檢索該頁面時也是如此。我們應該在此方法中包括為每個請求必須執行的代碼,而不是把必須執行的代碼放在頁面建構函式中。

(2)Loaded事件:當已構造 FrameworkElement 並將其添加到對象樹中時發生,主要是頁面被載入後觸發這個事件。大部分控制項都有這個事件,在控制項被載入後觸發事件。此事件不路由(而許多 Silverlight 輸入事件都路由)。注意,子控制項先Loaded,然後是父控制項Loaded。

(3)OnNavigatingFrom:剛好在頁面不再是架構中的活動頁面之前調用。

     如果需要頁面變成非使用中前執行操作時可以重寫OnNavigatingFrom 方法。比如儲存當前頁面的資料等。

(4)OnNavigatedFrom:當頁面不再是架構中的活動頁面時調用。

     如果在頁面變成非使用中時我們需要執行最後的操作,那我們可以重載OnNavigatedFrom操作。比如:更新頁面相關的資料等。

(5)Unloaded:當此對象不再與主對象樹串連時發生。

         和Loaded事件類別似, Unloaded 不是 Silverlight 中的路由事件。如果 Silverlight 應用程式由於任何原因關閉,任何對象不會引發 Unloaded事件。與Loaded事件相反,這裡父控制項先Unloaded,然後是子控制項Unloaded。

     注意:被設定為Visibility.Collapsed的Visibility不等價於正從對象樹中被卸載,並且不引發對象上的Unloaded。同樣,更改Popup的開啟狀態不會在Popup或任何其子項目上引發Unloaded。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.