Wpf Page间跳转传参数 And Window To Page

Posted lic0914

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Wpf Page间跳转传参数 And Window To Page相关的知识,希望对你有一定的参考价值。

  这段时间用到Wpf,页面间的跳转网上有不少的示例,但是有些已经不能用了,尤其是页面间的传参问题更是一大堆,但正确的解决方案却没有几个,或者说写的不清楚,让人走了很多弯路,查看官方文档后发现了正确的姿势,现记录如下

Page页间的跳转

     private void Button_Click(object sender, RoutedEventArgs e)
        {           
            Page2 p = new Page2();
            this.NavigationService.Navigate(p, DateTime.Now);
        }
    
//xaml 页面跳转实例
   <Button Height="30" VerticalAlignment="Top"> <Hyperlink NavigateUri="Page2.xaml" Foreground="Red"> 跳转 </Hyperlink> </Button>

很简单吧。(网上有的说是Uri("") 做参数,发现不好使 )

Window To Page 跳转

//需要借助 NavigationWindow 实现 
NavigationWindow nav = new NavigationWindow();
nav.Source = new Uri("Page1.xaml", UriKind.Relative);
nav.Show();

最后 说下page间传参数的问题

Page1 to Page2

Page1.cs
private
void Button_Click(object sender, RoutedEventArgs e) { Page2 p = new Page2(); this.NavigationService.Navigate(p, DateTime.Now);
//注意LoadCompleted 事件的位置在 Page1.cs 中
this.NavigationService.LoadCompleted += p.NavigationService_LoadCompleted; }
 Page2.cs
public void NavigationService_LoadCompleted(object sender, NavigationEventArgs e) { string msg = string.Format("{0} loaded.", e.ExtraData); MessageBox.Show(msg); }

有人说是 NavigationService.LoadCompleted 放在page2中,但会有 NavigationService 的NullReferenceExcepteion。

放在Load中就不会有此异常,但是页面刚跳转无效,返回就有,还是不行。

查找文档后 整理如上避免太多人的入坑,内容纯手写,仅此笔记而已,不喜勿喷。。。 






以上是关于Wpf Page间跳转传参数 And Window To Page的主要内容,如果未能解决你的问题,请参考以下文章

window.location.href跳转传参并接收参数

window.location.href跳转传参并接收参数

vue四种页面跳转传参方法

WPF窗口跳转及window和page区别

两个页面跳转传中文参数,中文出现乱码解决方法

Spring MVC controller间跳转 重定向 传参