我无法弄清楚为什么我的按钮点击没有导航到新页面。我尝试过几种方式编写这段代码,但没有一种方法可行。 EnlargedScreenCap是一个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
仍为空。
我试着四处搜寻这个问题已经多次提出,但似乎没有人有一个像样的解释,或者至少有一个我能够成功申请。
有人能指出我正确的方向吗?
答案 0 :(得分:1)
我认为你不应该按照自己的方式创建NavigationService。此外,如果您想要启用导航,所有这些都应该在框架中完成
<Frame x:Name="_mainFrame" />
然后你可以做类似
的事情_mainFrame.NavigationService.Navigate(new Uri("EnlargedScreenCap.xaml", UriKind.Relative));
没有前面的双斜线。
查看这篇文章。 http://paulstovell.com/blog/wpf-navigation
希望有所帮助