2013-10-29 97 views
0

在我的主網頁我嘗試導航到另一個頁面(這是一個全景頁),我的炫魅的C#代碼,如何導航到Windows Phone中的全景頁面?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Animation; 
using System.Windows.Shapes; 
using Microsoft.Phone.Controls; 

namespace Panoramatry 
{ 
    public partial class MainPage : PhoneApplicationPage 
    { 
    // Constructor 
    public MainPage() 
    { 
     InitializeComponent(); 
     displsy(); 
    } 
    public void display() 
    { 
     NavigationService.Navigate(new Uri("/GettingStarted.xaml",UriKind.Relative)); 
    } 
    } 
} 

而且我GettingStarted.xaml頁具有下面的代碼,

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Animation; 
using System.Windows.Shapes; 
using Microsoft.Phone.Controls; 

namespace Panoramatry 
{ 
    public partial class GettingStarted : PhoneApplicationPage 
    { 
    public GettingStarted() 
    { 
     InitializeComponent(); 
     display(); 
    } 
    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
    { 
     base.OnNavigatedTo(e); 
     display(); 
    } 
    public void display() 
    { 
     MessageBox.Show("Navigation Success"); 
    } 
    } 
} 

但在執行的炫魅我得到以下錯誤的導航代碼,

An exception of type 'System.NullReferenceException' occurred in Panoramatry.DLL but was not handled in user code 

但是,當我使用主頁上的按鈕,並將此導航添加到其單擊事件時,它的工作原理非常好! 可能是什麼問題? 在此先感謝!

+0

我從來沒有聽說過Panoramatry.DLL,您有什麼第三方庫你的解決方案最重要的是,哪些在GettingStarted.xaml中被引用? – FunksMaName

+0

@FunksMaName 沒有第三個patry庫! – Aju

+0

嘗試兩件事,當你離開顯示器();打電話,你是否仍然有同樣的問題?如果沒有,則將顯示移動到OnNavigatedTo事件塊中,以查看錯誤是否仍在拋出protected override void OnNavigatedTo(NavigationEventArgs e) MessageBox.Show(「Navigation Success」); (e); } – FunksMaName

回答

2

嗯,好吧,現在它更清晰

你不能在頁面構造函數使用的NavigationService,它不會被初始化。在第一頁,你做你的導航,移動重定向到的OnNavigatedTo事件,如

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Net; 
    using System.Windows; 
    using System.Windows.Controls; 
    using System.Windows.Documents; 
    using System.Windows.Input; 
    using System.Windows.Media; 
    using System.Windows.Media.Animation; 
    using System.Windows.Shapes; 
    using Microsoft.Phone.Controls; 

namespace Panoramatry 
{ 
    public partial class MainPage : PhoneApplicationPage 
    { 
    // Constructor 
    public MainPage() 
    { 
     InitializeComponent(); 
    } 

    protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     display(); 
    } 

    public void display() 
    { 
    NavigationService.Navigate(new Uri("/GettingStarted.xaml",UriKind.Relative)); 
    } 
    } 
} 

順便說一下,一個更好的方式來處理有條件進入網頁將是您使用的UriMapping功能WP。看到一個示例here這樣,您的後退按鈕入口堆棧中沒有不必要的頁面,爲您的用戶提供更好的UX

+0

當我用你的代碼我得到一個錯誤,指出, 錯誤「Panoramatry.MainPage.OnNavigatedTo(Microsoft.Phone.Controls.NavigatingEventArgs)」:發現覆蓋 – Aju

+0

沒有合適的方法,我已經更新了我的問題請做看看它! – Aju

+0

我已經更新答案,以答案中的方式複製並粘貼它,它應該可以正常工作。只有當OnNavigatedTo拼寫錯誤或簽名錯誤時,纔會報告上次發生的錯誤。 – FunksMaName

相關問題