J'ai converti tous mes UserControls de l'application Silverlight en Pages afin que je puisse utiliser le Cadre de navigation. Quoi qu'il en soit, j'ai donc créé un UserControl appelé MyFrame, qui hébergerait toutes les pages. Dans mes App.xaml.cs j'ai les éléments suivants pour vous assurer que MyFrame est chargé lorsque les charges App:SL 3 navigation ne fonctionne pas!
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MyFrame();
}
Ma classe UriMapper réside dans App.xaml et se présente comme suit:
<navcore:UriMapper x:Key="uriMapper">
<navcore:UriMapping Uri="Login" MappedUri="Login.xaml">
</navcore:UriMapper>
Dans ma classe « MyFrame », je donne les résultats suivants
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Vertical">
<HyperlinkButton Tag="Login" Content="Login" Click="HyperlinkButton_Click" />
</StackPanel>
<StackPanel Orientation="Vertical">
<navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle}" />
</StackPanel>
</StackPanel>
Et dans le rappel pour mon gestionnaire d'événements de HyperlinkButton, je donne les résultats suivants:
private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
{
ContentFrame.Navigate(new Uri((sender as HyperlinkButton).Tag.ToString(), UriKind.Relative));
}
Le fichier Login.xaml se trouve dans mon dossier racine (sous Projet). Cette navigation ne semble pas fonctionner! L'exception que je me lit comme ceci:
Navigation est prise en charge uniquement les URIs relatives qui sont des fragments, ou commencent par «/», ou qui contiennent «composant/». Nom du paramètre: uri
La page de connexion ne se charge pas. Il n'y a pas de problème avec Login.xaml comme lorsque je l'ai défini
this.RootVisual = new Login();
la page se charge très bien.
J'ai également essayé de définir l'attribut NavigateUri de l'HyperlinkButton sur "Login". Pas de cigare.
J'apprécie n'importe quelle aide!
Merci beaucoup à l'avance