2013-12-20 117 views
0

我不明白爲什麼我的按鈕點擊不是導航到新頁面。我嘗試了幾種方式編寫這段代碼,但都沒有工作。 EnlargedScreenCap是一個WPF頁面,與​​我要加載它的窗口位於同一個目錄中。按鈕點擊將不會導航到新的WPF頁面

private void Image_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) 
    { 
     NavigationService nav = NavigationService.GetNavigationService(this); 
     ImageSource image = sender as ImageSource; 
     EnlargedScreenCap esc = new EnlargedScreenCap(); 
     esc.SetImage(image); 
     nav.Navigate(esc); 
    } 

寫成這樣,我得到一個空引用異常,因爲NavigationService是沒有得到初始化。

 private void Image_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) 
    { 
     ImageSource image = sender as ImageSource; 
     EnlargedScreenCap esc = new EnlargedScreenCap(); 
     esc.SetImage(image); 
     NavigationService nav = NavigationService.GetNavigationService(this); 
     nav.Navigate(new Uri("//EnlargedScreenCap.xaml"), UriKind.RelativeOrAbsolute); 
    } 

當這樣寫上面的代碼中,我得到一個無效的URI錯誤,雖然nav仍然是空。

我試過四處尋找,這個問題已經提出了很多次,但沒有人似乎有一個體面的解釋或至少有一個,我已經能夠成功地申請。

難道有人指着我正確的方向嗎?

回答

1

我不認爲你應該按照自己的方式創建NavigationService。此外,如果要啓用導航這一切都應該在一個框架

<Frame x:Name="_mainFrame" /> 

可以做到,那麼你可以不喜歡

_mainFrame.NavigationService.Navigate(new Uri("EnlargedScreenCap.xaml", UriKind.Relative)); 

東西如果沒有前面的雙斜線。

結帳這篇文章。 http://paulstovell.com/blog/wpf-navigation

希望它有幫助