无法使用相对路径导航到同一文件夹中的文件?

时间:2013-08-26 19:12:56

标签: visual-studio silverlight windows-phone-8

我对这个看似简单的错误感到非常困惑。我无法使用此代码导航到同一文件夹中的文件

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

我也试过

NavigationService.Navigate(new Uri("/Rotate.xaml", UriKind.Relative));

但是,当我移动文件时,我正在处理主项目文件夹,然后使用此导航代码

NavigationService.Navigate(new Uri("/Pages/Rotate.xaml", UriKind.Relative));

它有效!当我在同一个文件夹中时,为什么我无法导航到该文件,但当我在主项目文件夹中时,我可以这样做?

solution explorer http://i41.tinypic.com/21d4p60.jpg

为了让您更好地了解我的解决方案资源管理器。该视图对应于前两种情况。在第三种情况下,我在Pages文件夹之外有PictureSelect.xaml文件,并尝试导航到Rotate.Xaml文件。

1 个答案:

答案 0 :(得分:2)

I can't navigate to a file in the same folder using this code

导航器使用的路径与当前目录无关。在Silverlight中没有像Windows应用程序中那样的概念。

导航器使用该路径在xap中查找资源文件。因此,您总是必须使用完整路径,即`/Pages/Rotate.xaml'使用前导斜杠告诉SL开始查看根。

此外,BuildAction的设置也会影响文件在编译时的放置位置。

要获得更好的概念,请解压缩xap文件夹,您可以看到项目的实际位置及其查找位置。

有时使用相对位置似乎有效,但它很容易打破,我避免使用它。

Greg