如何从Windows Phone 7应用程序的任何部分获取主页?

时间:2010-10-16 23:16:08

标签: windows-phone-7

有没有办法从任何子控件中获取主页面对象?作为一种可能的解决方案,我看到这里冒泡父母并在父母属于PhoneApplicationPage类型时立即停止。这对我来说没问题,但是如果我需要从其他页面那样做呢? 即如何从应用程序中的任何位置获取应用程序的主页?

2 个答案:

答案 0 :(得分:9)

在App.xaml中,有一个名为RootFrame的公共属性,它的类型为PhoneApplicationFrame class。它是PhoneApplicationPages的容器discussed in this article

您可以随时访问RootFrame,因为它位于应用程序范围内。所以,例如......

var frame = Application.Current.RootVisual as PhoneApplicationFrame;
var startPage = frame.Content as PhoneApplicationPage;

您的应用开始的页面位于WMAppManifest.xml ...

<Tasks>
  <DefaultTask  Name ="_default" NavigationPage="MainPage.xaml"/>
</Tasks>

答案 1 :(得分:0)

我想在视图类中封装数据透视表项的行为。显然,SelectionChanged在启动期间会旋转每个轴项,因此我必须执行以下操作:

var frame = App.Current.RootVisual as PhoneApplicationFrame;

if (null == frame) //during app load
{
   container = App.Current.RootVisual as MainPage;
}
else //during pivot event;
{
   container = frame.Content as MainPage;
}

Container被定义为私有MainPage容器= null; 怪异。