2010-10-16 40 views
6

是否有任何方法從任何子控件獲取主頁面對象?作爲一種可能的解決方案,我在這裏看到冒泡通過父母,並儘快停止PhoneApplicationPage類型的父代。對我來說這很好,但是如果我需要從其他頁面那樣做呢? 也就是說如何從應用程序中的任何地方獲取應用程序的主頁?如何從Windows Phone 7應用程序的任何部分獲取主頁?

回答

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> 
+0

謝謝!有用! – 2010-10-17 10:54:36

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; 
} 

集裝箱被定義爲私人集裝箱的MainPage = NULL; 奇怪。

相關問題