我的问题很简单:当用户更改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;
}
当执行上面的代码时,应用程序进入全屏,但页面不会更改,只会调整大小。谁能告诉我这段代码有什么问题?感谢
答案 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;