1、Page调用NavigationService.Navigate
新建项目,并新建一个NavigationWindow的窗体作为主窗体,并将Source指向page1.xaml
然后新建一个页面page1,(做为主窗体的主题内容。) 在page1上方一个button1
然后新建另一个页面page2,在page2上放一个button2,
在button1 的click事件中就可以写实现转向的方法:
Page2 p=new Page2();
this.NavigationService.Navigate(page2);
以上两行代码等价于
this.NavigationService.Navigate(new uil("page2.xaml",UriKind.Relative));
2、xaml中使用Hyperlink标签:
<Hyperlink NavigateUri="page2.xaml">
3、NavigationWindow的导航日志
返回上一页:this.NavigationService.GoBack
向前下一页:this.NavigationService.GoForward
已上是页面之间导航,同时在转向的同时最常见的就是要数据传递:
一.通过NavigationService.Navigate传递参数
1.首先new一个page对象:
Page2 page2 = new Page2();
2.通过NavigationService.Navigate传递参数
this.NavigationService.Navigate(page2,"frompage1");
3.在Page2,处理NavigationWindow的LoadCompleted事件
this.NavigationService.LoadCompleted += new LoadCompletedEventHandler(page2_LoadCompleted);
4.在page2_LoadCompleted方法里获取传递过来的参数
void page2_LoadCompleted(object sender,NavigationEventArgs e)
{
if(e.ExtraData != null)
{
string args = e.ExtraData.toString();
}
}
二、通过构造函数传递参数(最易使用)
首先new一个page对象并用NavigationService.Navigate转向
Page2 page2 = new Page2("frompage1");
this.NavigationService.Navigate(page2);
在page2中定义构造函数
public Page2(string args)
{
string args2 = args;
}
三、通过Application.Properties的全局数据
用实例或URI导航到页面
Application.Properties["Args"] = "frompage2";
Page2 page2 = new Page2();
this.NavigationService.Navigate(page2);
在page2页面检查参数值
if(Application.Properties["Args"] != null)
{
string arg = Application.Properties["Args"];
}
本文来自厚德载物—好学力行的博客,原文地址:http://www.cnblogs.com/lxy131/archive/2010/08/25/1808343.html