按钮单击将不会导航到新的WPF页面

时间:2013-12-20 13:58:02

标签: c# wpf navigationservice

我无法弄清楚为什么我的按钮点击没有导航到新页面。我尝试过几种方式编写这段代码,但没有一种方法可行。 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仍为空。

我试着四处搜寻这个问题已经多次提出,但似乎没有人有一个像样的解释,或者至少有一个我能够成功申请。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

我认为你不应该按照自己的方式创建NavigationService。此外,如果您想要启用导航,所有这些都应该在框架中完成

<Frame x:Name="_mainFrame" />

然后你可以做类似

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

没有前面的双斜线。

查看这篇文章。 http://paulstovell.com/blog/wpf-navigation

希望有所帮助