美文网首页
wpf中window和page的跳转

wpf中window和page的跳转

作者: 北风知我意 | 来源:发表于2018-12-29 00:51 被阅读0次

WPF页面跳转有两种:一种是windows,另外一种是page

1:windows页面跳转

windows 页面跳转相信学过winform编程的哥们都知道,先实例化该窗体然后show一下就可以了.eg:有两个窗体Main和Login,要想点击Login 窗体上的注册按钮然后跳转到Main上,则在Login窗体的Click事件里代码如下:Main Mn=new Main();Mn.Show();

        private void btn1_Click(object sender, RoutedEventArgs e)

        {

            Login login1 = new Login();  //Login为窗口名,把要跳转的新窗口实例化

            login1.Show();  //打开新窗口

            this.Close();  //关闭当前窗口

        }

2:Page页面跳转Page页面跳转:前台跳转和后台跳转都可以实现前台实现:

<TextBlockFontSize="24"TextWrapping="Wrap"Margin="0,0,0,0">

<Hyperlinkx:Name="LnkPre"NavigateUri="Page1.xaml"Foreground="Black">

Enter Page1

</Hyperlink>

</TextBlock>

后台实现:

NavigationService.GetNavigationService(this).Navigate(new Uri("Page1.xaml", UriKind.Relative));

NavigationService.GetNavigationService(this).GoForward();//向后转

NavigationService.GetNavigationService(this).GoBack();  //向前转

在后台还可以这样写:this.content = new Page1();(这种比较简单,但是建议大家使用前一种更能提高自己,呵呵)

另外还可以以实现windows跳转到page:

NavigationWindow window =new NavigationWindow();

window.Source =new Uri("Page1.xaml", UriKind.Relative);

window.Show();

***************************************************************

# 页面跳转中函数Show() 和ShowDialog()区别 #

参考网站:https://zhidao.baidu.com/question/54948499.html

面对多窗口的调用的时候,我们往往不喜欢窗口之间的随意切换,那样我们还有花费时间寻找我们要用的窗口,而且,一但出现问题,窗口的顺序也有可能被再次打乱,很是不顺手,那么我们怎么办呢?

我们可以将show方法转化为showdialog方法,顾名思义,showdialog是一个进行路经绑定的show方法,他是不可以自由切换的,换言之,就是,当你没有关闭你当前页的前提下,你是无法关闭该页面后面的任一页面的,它是当前唯一(路经打开)为true的。

而show方法由于未进行绑定,它所显示的各个窗口、对话框是可以相互切换,而不需要关闭当前窗口、对话框。但是他由于未进行绑定,所以每个由show方法打开的窗口的顺序是非固定的,如果遇到什么问题,由show方法打开的窗口的顺序可能会有很大的改变!

show()仅仅是显示出来窗口界面而已```也就是和你执行的结果在同一窗口显示```所显示的窗口可以在后台运行```而showDialog()是一个对话框窗口界面```执行结果以新窗口界面出现```不允许进行后台运行```就是你想编辑什么的时候```非得先关闭showDialog()窗口界面才可以进行其他操作```

这就是它们的一点小区别了```

show()是非模式窗体.

showDialog()是模式窗体.

区别在于,以showDialog()打开的窗体,要等窗体关闭后才能操作其他窗体.而show()则不受此限制.

这是最经常的区别了,

还有一个我个人使用的心得,你可以了解

比如你先打开子窗体,想隐藏主窗体。

如果这个时候用Show的话,则会发生的事情是,打开子窗体的同时主窗体又显示出来,而使用ShowDialog()的时候主要当子窗体关闭的时候主窗体才会显示。

简单代码如下:

Form2 f2 = new Form2();

this.Visible = false;

f2.ShowDialog();

this.Visible= true;

这就是模态对话框的与Show的区别。

**********************************************************************

# 窗口之间传值 #

参考网站:https://bbs.csdn.net/topics/390172282

可以改一下构造函数

public MainWindow(string value1,string value2)

{

  //...

}

调用:

MainWindow window=new MainWindow(传值1,传值2);

window.Show();

*************************************************************************

相关文章

网友评论

      本文标题:wpf中window和page的跳转

      本文链接:https://www.haomeiwen.com/subject/prwylqtx.html