2014-10-02 45 views
0

當前在Windows Phone 8.1中,如果我想導航到新頁面,首先我必須創建一個新頁面項目 - 產生XAML和CS文件。在以導航到它,我做了以下內容:在Windows Phone 8.1後面的代碼中創建新頁面

Frame.Navigate(typeof(MyNewPage)); 

現在,我想知道是否可以在代碼中創建一個新的頁面後面,找到它,像:

Page myNewPage = new Page(); 
Frame.Navigate(typeof(myNewPage)); 

由於Navigate方法只接受typeof(),我該如何做到這一點?

+1

'myNewPage.GetType()'?這將通過一個'頁面',所以不知道如果這是你想要的。 – gunr2171 2014-10-02 15:11:17

+0

它是有道理的,但不起作用。 **更新:**其實它的工作,我做錯了。請發佈答案,以便我可以接受它。謝謝! :) – 2014-10-02 15:14:41

+0

有趣的是我正在猜測。我不打算基於此做出答案。其他人(或你自己)可以挑選出來。 – gunr2171 2014-10-02 15:30:06

回答

1

感謝@gunr2171's wild guess,我能夠使它工作。所以,最終的代碼如下所示:

Page myNewPage = new Page(); 
Type pageType = myNewPage.GetType(); 
Frame.Navigate(pageType); 

,或者更簡單:

Page myNewPage = new Page(); 
Frame.Navigate(myNewPage.GetType()); 
1

This link表示您可以傳遞任何對象作爲Frame.Navigate方法的另一個版本的第二個參數。我認爲你可以使用它(我建議你想從你的新頁面後面的代碼中填充一些屬性或者不要...)。您也可以在導航後從Frame訪問您的頁面。想想看,它可能會有所幫助。

var root = Window.Current.Content as Frame; 
     var mainPage = root.Content as Page; 
+0

這是一個很好的建議@PolarBear,但對於我的場景,我需要能夠在代碼中做所有事情,只需發送第二個參數對我來說是不夠的。 – 2014-10-02 15:26:53

+0

好吧)有趣的場景,祝你好運。 – PolarBear 2014-10-02 15:28:27

相關問題