我对这个看似简单的错误感到非常困惑。我无法使用此代码导航到同一文件夹中的文件
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文件。
答案 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