WPF框架源问题

9

我创建了一个带有内嵌框架的WPF应用程序。我可以将其他页面附加到此框架中,例如

frame1.Source = new Uri("Page1.xaml", UriKind.RelativeOrAbsolute);

问题是在加载此页面(Page1.xaml)之后,在同一框架中加载另一页(Page2.xaml),Page1.xaml是否会自动释放或仍在后台运行?我找不到框架源页面的释放方法。请问是否有人能够解释一下这个问题。

1个回答

13

Frame旨在提供导航内容的能力;包装用于导航的首选方法是Page,就像您正在做的那样。具体而言,可以使用Navigate方法导航Frame,并且将维护导航历史记录的生命周期,这里的“历史”是关键词。

在导航历史记录中,为避免过多的内存消耗,Frame不会维护每个已导航页面的实例。因此,当使用导航控件时,状态不会被记忆,每次导航到页面时都会创建一个新实例。

换句话说,当您从Frame中导航离开页面时,对象将被释放。

MSDN有关于使用Frame的良好阅读资料


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接