2010-08-04 5 views
2

내 문제는 매우 간단합니다. 사용자가 ListBox에서 선택을 변경하면 내 앱이 전체 화면 모드로 전환해야하지만 표시된 페이지를 변경해야합니다. 나는 위의 코드를 실행하면 실버 라이트 4전체 화면 모드로 전환 할 때 페이지 변경

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

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

앱이 전체 화면으로 간다 사용할 수 있지만 페이지가 변경되지 않습니다, 그것은 단지 크기를 조정합니다. 아무도 그 코드의 잘못된 점을 말해 줄 수 있습니까? 감사합니다

답변

1

할당 된 후 Application.RootVisual을 변경할 수 없습니다. 당신이해야 할 일은 내용을 변경할 수있는 패널을 포함하고 그 패널을 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; 
} 

그런 다음 앱의 Startup 이벤트에서 이와 비슷한 작업을 수행하십시오.

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

네, 그 덕분에, 대단히 감사합니다. –

관련 문제