进入全屏模式时更改页面

时间:2010-08-04 12:30:28

标签: c# .net silverlight

我的问题很简单:当用户更改ListBox中的选择时,我需要我的应用程序进入全屏模式,但我需要更改显示的页面。我使用Silverlight 4

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

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

当执行上面的代码时,应用程序进入全屏,但页面不会更改,只会调整大小。谁能告诉我这段代码有什么问题?感谢

1 个答案:

答案 0 :(得分: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;