是否在应用程序开头加载了所有页面?或者他们只是在我向他们航行时才加载?当我离开页面时,该页面的资源是否已发布?或者有一种方法可以控制它吗?
答案 0 :(得分:1)
Page是一个对象,当您想要导航到它们时正在初始化。导航意味着创建一个新的Page对象并将其传递给Frame的内容。
当您调用Frame.Navigate时,系统会自动生成指定类型为u的新Page对象。有一个名为INavigationAware的界面,主要控制NavigatedTo和NavigatedFrom事件。每当您导航到页面时,OnNavigatedTo事件处理程序都将运行。无论何时从页面导航,OnNavigatedFrom处理程序都将运行。还有OnNavigatingTo和OnNavigatingFrom事件将在那些事件之前触发。
您应该在OnNavigatedFrom方法中取消注册任何事件处理程序和回调,以防止不必要的内存泄漏。如果您有任何从后台线程运行的线程,请不要忘记取消它们。当您离开在UI线程上运行线程的页面时,您的导航将排队并在UI操作完成后发生。
您应该阅读应用程序生命周期管理MSDN页面here,以获取有关生命周期操作如何影响Page对象的更多信息。