wpf 中frame控件的使用内存溢出的处理方法

frame控件相当于一个嵌套在程序里的浏览器一样,它可以展示page类实例,拥有导航UI,可以通过NavigationUIVisibility属性来控制导航UI的可见性。

  在做应用程序开发的时候发现,我把NavigationUIVisibility设为hidden了,在程序多点几个按钮是发现内存在不断上涨。(按钮的左右是展示不同page),后来发现,是frame控件在作怪,当一个新的page载入时,它不会把前面的page给释放掉,而是放在ui导航里

      就像这样。

多点几个按钮就会发现,内存在不断的上涨,直到程序奔溃。

一开始的设想是找方法设置存在导航里的page数目数目,可是没有找到这个属性。                希望知道的通知可以告知,O(∩_∩)O!

 后来就差MSDN发现,frame有一个RemoveBackEntry()方法,可以把历史导航里的前一条记录给删掉,这样就OK了,在每次载入一个page时,加入一个RemoveBackEntry()语句,就可以把前面记录的page删掉,这样内存就不会上涨了。

 

也许可以有其他控件承载PAGE实例,就不会出现内存暴涨的问题,  有知道的同学么?

posted on 2012-11-09 10:20  秋毫  阅读(3519)  评论(0编辑  收藏  举报

导航