Asd*_*dfg 2 wpf multithreading process
我用两个窗口创建了新的WPF应用程序.
在MainWindow.xaml中添加了一个按钮,并在按钮的单击事件中编写了以下代码:
Window1 w = new Window1();
w.Show();
Run Code Online (Sandbox Code Playgroud)
我点击了那个按钮2-3次,它打开了Window1的多个实例.
一切都很好,直到这里.
现在,我关闭了MainWindow并且它没有关闭Windows1的实例.
我在想,因为MainWindow是拥有Process的那个,如果它关闭,其余的子窗口将自动关闭.
我在WinForms应用程序中执行了相同的项目,结果完全不同.在关闭MainWindow时,它确实关闭了其余的窗口.
我不明白这个概念吗?有人能告诉我谁拥有WPF中的进程或主线程?
除非您设置,否则其他窗口不是MainWindow的子窗口 window.Owner = mainWindow;
此外,还有一个Application.MainWindow属性设置哪个窗口实际上被视为"主窗口".这会影响Application.ShutdownModeif设置为OnMainWindowClose.
摘录自Window.Owner参考文献:
当父窗口通过调用ShowDialog打开子窗口时,在父窗口和子窗口之间建立隐式关系.这种关系强制执行某些行为,包括最小化,最大化和恢复.
但是,当父窗口通过调用Show创建子窗口时,子窗口与父窗口没有关系.这意味着:
子窗口没有父窗口的引用.
子窗口的行为不依赖于父窗口的行为; 任何一个窗口都可以覆盖另一个窗口,或者最小化,最大化,并且可以独立于另一个窗口进行恢
为了允许您在子窗口和父窗口之间创建关系,Window支持所有权的概念.当窗口的所有者属性(拥有的窗口)设置为引用另一个窗口(所有者窗口)时,建立所有权.
应用程序根类: System.Windows.Application
| 归档时间: |
|
| 查看次数: |
655 次 |
| 最近记录: |