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