首先,我使用Frame来浏览我的页面,但是我发现每次导航时内存都会增加。(我已经设置了NavigationCacheMode)。
托管内存相同,但非托管内存增加。
然后我使用Dictionary来保存我的所有页面,使用ContentPresenter作为页面容器,但是当我将页面设置为ContentPresenter的内容时,内存也会增加。
Dictionary<Type, Page> navigationPages = new Dictionary<Type, Page>();
public void Navigate(Type pageType, string param)
{
var re = navigationPages.Keys.Contains(pageType);
if (re == true)
{
var page = navigationPages[pageType];
this.contentPresenter.Content = page;
}
else
{
var page = Activator.CreateInstance(pageType) as Page;
navigationPages[pageType] = page;
this.contentPresenter.Content = page;
}
}