2013-08-26 5 views
0

Je suis absolument confus par cette erreur apparemment simple. Je ne peux pas accéder à un fichier dans le même dossier en utilisant ce codeVous ne pouvez pas accéder au fichier dans le même dossier en utilisant un chemin relatif?

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

J'ai aussi essayé

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

Cependant quand je déplace le fichier que je travaille sur le dossier principal du projet, puis utilisez ce code de navigation

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

cela fonctionne! Pourquoi ne puis-je pas accéder au fichier lorsque je suis dans le même dossier mais que je peux quand je suis dans le dossier principal du projet?

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

Pour vous donner une meilleure idée est la vue de mon explorateur de solution ici. Cette vue correspond aux deux premières situations. Dans la troisième situation, j'ai le fichier PictureSelect.xaml en dehors du dossier Pages et essayez de naviguer vers le fichier Rotate.Xaml.

Répondre

2

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

Le chemin qui est utilisé par le navigateur n'a rien à voir avec un répertoire courant. Il n'y a pas un tel concept dans Silverlight comme il y a dans une application Windows.

Le chemin est utilisé par le navigateur pour trouver un fichier de ressources dans le fichier xap. Ainsi, vous devez toujours utiliser le chemin complet, c'est-à-dire `/Pages/Rotate.xaml 'en utilisant la barre oblique avant pour indiquer à SL de commencer à regarder la racine. En outre, le paramètre de BuildAction affecte également l'emplacement du fichier au moment de la compilation.

Pour obtenir un meilleur concept de ceci, décompressez le dossier xap et vous pouvez voir l'emplacement réel des éléments et où il regarde.

Parfois, l'utilisation de l'emplacement relatif semble fonctionner, mais il est très facile de la casser et j'évite de l'utiliser.

Greg

+0

Merci pour votre aide et explication. Cela a fonctionné parfaitement. – Tariq

Questions connexes