【问题标题】:Page doesn't destroy/unload itself after OnNavigatedFrom在 OnNavigatedFrom 之后页面不会自行销毁/卸载
【发布时间】:2017-01-08 09:19:35
【问题描述】:

我正在使用框架来显示我的当前页面。用户可以在两个页面之间切换。

我通过以下方式导航到页面:

frame.Navigate(typeof(FirstPage));

frame.Navigate(typeof(SecondPage));

我认为每次在页面之间切换时,旧页面都会被破坏/卸载所有内容。

但是看内存使用情况,好像不是这样:

(每次我导航到SecondPage 时,我都会运行垃圾收集器,以便您查看导航发生的时间)

我必须更改frame.Navigation() 方法还是必须在OnNavigationFrom() 方法中添加一些内容?

【问题讨论】:

  • SecondPage 中的 NavigationCacheMode 是什么?最好的建议是停止担心这个,你没有内存泄漏。并停止“运行垃圾收集器”。
  • 谢谢 :) 缓存被禁用,我只运行垃圾收集器,以便更容易看到导航发生的时间。所以说明“问题”只是暂时的
  • 要使这个问题变得富有成效,您必须创建一个minimal reproducible example

标签: c# wpf memory navigation uwp


【解决方案1】:

如果您不希望应用在导航后占用太多内存,只需将页面上的NavigationCacheModeproperty 设置为NavigationCacheMode.Required

您的应用不会在您每次导航到页面时创建新的页面实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 2017-11-19
    • 2015-08-16
    • 2014-09-24
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    相关资源
    最近更新 更多