2013-12-20 57 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

希望它有帮助