2010-06-11 6 views
0

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

Répondre

0

Ok se trouve que la définition explicite la propriété UriMapper du cadre résout ce problème. On dirait que l'UriMapper n'a pas été initialisé et associé au Frame.

<navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle}" UriMapper="{StaticResource uriMapper}"/> 

Ce qui précède résout le problème.

Questions connexes