gpt4 book ai didi

c# - 如何清除WPF中的导航历史记录

转载 作者:太空宇宙 更新时间:2023-11-03 17:01:34 24 4
gpt4 key购买 nike

我正在使用其页面和导航窗口构建一个 WPF 应用程序,但我根本不需要它的导航历史记录(可能选择了错误的应用程序类型?),这导致了内存泄漏。

正在关注 this post ,我在每次导航后使用 NavigationService.RemoveBackEntry();,如下所示

this.NavigationService.Navigate(new MyPage());
NavigationService.RemoveBackEntry();

但它不起作用,因为应用程序在运行时仍然会占用越来越多的内存,并且在显示导航栏时它仍然允许向后导航。无论如何要清除导航历史记录?有没有比 NavigationWindow+Page 更合适的结构推荐?

最佳答案

正如 Conroy 在 his answer 中所说的那样, 不应使用 NavigationWindow。
也许 Window 上的 TabControl 更适合该程序。

不管怎样,这里有一个解决方案,用于清除 NavigationService 中所有“以前的”返回条目:


C#:

while (NavigationService.CanGoBack) {
try {
NavigationService.RemoveBackEntry();
} catch (Exception ex) {
break;
}
}

VB.NET:

While NavigationService.CanGoBack
Try
NavigationService.RemoveBackEntry()
Catch ex As Exception
Exit While
End Try
End While


代码说明:

  • While 循环在有返回项时继续运行。
  • 在每个循环中删除一个返回条目。
  • While 循环在没有更多返回条目时退出

关于c# - 如何清除WPF中的导航历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28523877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com