在编写程序的时候,我们有时候需要多个窗口来完成功能,而程序默认只显示主窗口,那么我们该如何在主窗口中打开其他窗口呢?
可以通过ShowDialog()和Show()两种方式实现。
具体如下:
1 2 |
Window1 win = new Window1(); win.ShowDialog();///或win.Show(); |
而ShowDialog()和Show()的区别之处在于,我们使用ShowDialog()时原窗口的代码将会暂停执行,直到显示出的窗口关闭或隐藏才会继续执行。而Show()时原窗口的代码将会继续执行。
当我们要通过弹出的窗口输入某些信息或者作为对话框弹出时,通常使用ShowDialog(),这样在关闭对话框后可以读取输入的数据,否则读取的通常是打开的一瞬间显示的数据。使用ShowDialog()在关闭弹出窗口前原窗口将会是一种类似未响应的状态,进行任何操作都不会有反应。
Show()通常在几个窗口需要并行工作时使用,每个窗口的代码独立运行,彼此之间不会产生影响。
在括号中输入的是显示窗体的所有者 ,当一个窗体归另一窗体所有时,它便随着所有者窗体最小化和关闭。
如果我们在关闭新窗体时想保留布局状态时可以使用如下代码
1 |
Visibility = Visibility.Hidden; |
这样当窗体再次打开时就将是上一次隐藏前的状态,但这样有可能出现主窗体关闭的情况下隐藏的窗体并没有关闭,此时进程并未结束,所以我们可以在主窗体的关闭事件中加入如下代码:
1 |
win.Close(); |
其中win是主窗体中为副窗体设置的变量名。
———一条很咸的分割线———
因为自己几乎是毫无基础的尝试编写这个程序,所以不会用些专业的方式描述这些语句具体有什么作用,只是会用的程度,请dalao们轻喷。