我正在使用其Page和NavigationWindow构建一个WPF应用程序,但我根本不需要它的导航历史记录(可能选择了错误的应用程序类型?),这会导致内存泄漏。
关注this post后,我在每次导航后都使用NavigationService.RemoveBackEntry();
,如下所示
this.NavigationService.Navigate(new MyPage());
NavigationService.RemoveBackEntry();
但它不起作用,因为应用程序在运行时仍会占用越来越多的内存,并且在显示导航栏时仍然允许向后导航。无论如何要清除导航历史记录?对于比NavigationWindow + Page更适合的结构的建议吗?
答案 0 :(得分:0)
正如Conroy在his answer中所述,不应使用NavigationWindow。
也许Window上的TabControl更适合该程序。
无论如何,这是清除NavigationService中所有“上一个”后退条目的解决方案:
C#:
function! VisualAroundDollar()
let search = @/
execute "normal! ?\\$\rvN"
let @/ = search
endfunction
vnoremap a$ :<C-U>call VisualAroundDollar()<CR>
omap a$ :normal va$<CR>
VB.NET:
while (NavigationService.CanGoBack) {
try {
NavigationService.RemoveBackEntry();
} catch (Exception ex) {
break;
}
}
代码说明:
答案 1 :(得分:-2)
如果您不需要,为什么要使用NavigationService
?
您可以使用Content
的{{1}}属性。
Window