2016-12-26 23 views
0

是否在應用程序的開始加載了所有頁面?還是他們只在我駕駛他們時才加載?當我離開一個頁面時,該頁面的資源是否已發佈?或者有什麼方法可以控制它?何時在UWP中加載頁面?

+0

在導航到頁面並將XAML代碼繪製到用戶界面後加載頁面。您可以在這裏找到關於頁面資源:https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.page.navigationcachemode –

回答

1

頁面是一個對象,當你想要導航到它們時,它正在被初始化。導航意味着創建一個新的Page對象並將其傳遞給Frame的內容。

當您調用Frame.Navigate時,系統會自動生成一個新的指定類型的Page對象。有一個名爲INavigationAware的接口,主要控制NavigatedTo和NavigatedFrom事件。無論您何時導航到頁面,都會運行OnNavigatedTo事件處理程序。每當您從頁面導航時,OnNavigatedFrom處理程序都會運行。還有OnNavigatingTo和OnNavigatingFrom事件會在這些事件之前觸發。

您應該取消註冊OnNavigatedFrom方法中的任何事件處理程序和回調以防止不必要的內存泄漏。如果您有從後臺線程運行的任何線程,請不要忘記取消它們。當您離開具有在UI線程上運行的線程的頁面時,您的導航將排隊並在UI操作完成後發生。

您應該閱讀應用程序生命週期管理MSDN頁面here以獲取有關生命週期操作如何影響Page對象的更多信息。

相關問題