2010-08-04 15 views
2

mon problème est assez simple: lorsque l'utilisateur change de sélection dans un ListBox, j'ai besoin que mon application passe en mode plein écran, mais j'ai besoin de changer la page affichée. J'utilise Silverlight 4Changer de page en mode plein écran

private void MainListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
      PresentationPage currentPresentationPage = new PresentationPage(); 

      App.Current.RootVisual = currentPresentationPage; 
      App.Current.Host.Content.IsFullScreen = true; 
    } 

Lorsque le code ci-dessus est exécuté, l'application va à plein écran, mais la page ne change pas, il ne redimensionne. Quelqu'un peut-il me dire quel est le problème avec ce code? Merci

Répondre

1

Vous ne pouvez pas modifier Application.RootVisual après son affectation. Ce que vous devez faire est d'inclure un panneau que vous pouvez modifier son contenu et faire de ce panneau votre RootVisual.

private void MainListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
     PresentationPage currentPresentationPage = new PresentationPage(); 

     (App.Current.RootVisual as Panel).Children.Clear(); 
     (App.Current.RootVisual as Panel).Children.Add(currentPresentationPage); 
     App.Current.Host.Content.IsFullScreen = true; 
} 

Ensuite, dans l'événement Startup de votre application, faites quelque chose comme ça.

Panel grid = new Grid(); 
grid.Children.Add(new MainPage()); 
App.Current.RootVisual = grid; 
+0

Oui, cela fonctionne, merci beaucoup. –

Questions connexes