2013-08-26 63 views
0

我完全被這個看似簡單的錯誤所困惑。使用此代碼無法使用相對路徑導航到相同文件夾中的文件?

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

爲了讓您在這裏一個更好的主意是我的解決方案資源管理器中的視圖。該視圖對應於前兩種情況。在第三種情況下,我將PictureSelect.xaml文件放在Pages文件夾外,並嘗試導航到Rotate.Xaml文件。

回答

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

+0

感謝您的幫助和解釋。它工作完美。 – Tariq