微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Silverlight中切换“页面”

最近初学Silverlight,有海量的问题需要解决。本来想把所有看到的英文版的好东西都在这里翻译出来,方便英文不佳(虽然我的英文也不好)的初学兄弟,同时翻译的过程也是学习的过程。无奈时间实在紧张。这次就先把这个切换页面方法记录一下。
这个做法是来自“Jesse Liberty”的视频“USING MULTIPLE PAGES,PART 1”,基本方法是创建一个PageSwticher,这个PageSwitcher不直接显示页面,而是作为一个后台,负责切换各个页面
具体做法是:
新建一个UserControl,名字可以叫做PageSwitcher。然后将PageSwitcher.xaml中的Grid控件去掉,编程下面这样:

  1. <UserControl x:Class="SilverlightDemo.PageSwitcher" 
  2.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation%22 
  3.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml%22> 
  4. </UserControl>  

然后在后台代码增加一个方法,比如叫做SwitchPage,用来切换页面,然后在构造函数调用,用来显示一个显示页面

  1. public partial class PageSwitcher : UserControl 
  2.     { 
  3.         public PageSwitcher() 
  4.         { 
  5.             InitializeComponent(); 
  6.             SwitchPage(new Page());    //显示一个显示页面 
  7.         }  
  8.  
  9.         /// <summary> 
  10.         /// 切换页面 
  11.         /// </summary> 
  12.         /// <param name="newPage">需要被切换到的页面</param> 
  13.         public void SwitchPage(UserControl newPage) 
  14.         { 
  15.             this.Content = newPage; 
  16.         } 
  17.     }  

然后在我们的各个页面中,在需要切换页面的事件响应方法中,只需要这么做:

  1. private void btn_Click(object sender, RoutedEventArgs e) 
  2.     PageSwitcher switcher = this.Parent as PageSwitcher; 
  3.     switcher.SwitchPage(new AnotherPage()); 

最后,我们需要修改app.xaml.cs中的Application_Startup方法修改起始页面

  1. private void Application_Startup(object sender, StartupEventArgs e) 
  2.     this.RootVisual = new PageSwitcher(); 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐