0

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

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

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

4

1 回答 1

1

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

<Frame x:Name="_mainFrame" />

然后你可以做类似的事情

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

没有前面的双斜线。

签出这篇文章。 http://paulstovell.com/blog/wpf-navigation

希望能帮助到你

于 2013-12-20T14:36:49.437 回答