我正在使用 WPF 应用程序。我的第一个窗口中有两个文本框和一个按钮。基于一些数据库操作,我需要打开第一个窗口的副本(如果可能的话,像新标签一样打开),前提是两个窗口都可以同时访问。我用过
var MainWindow = new MainWindow();
MainWindow.ShowDialog();
和
var MainWindow = new MainWindow();
MainWindow.Show();
他们两个都不符合我的期望。谁能帮助我。
我正在使用 WPF 应用程序。我的第一个窗口中有两个文本框和一个按钮。基于一些数据库操作,我需要打开第一个窗口的副本(如果可能的话,像新标签一样打开),前提是两个窗口都可以同时访问。我用过
var MainWindow = new MainWindow();
MainWindow.ShowDialog();
和
var MainWindow = new MainWindow();
MainWindow.Show();
他们两个都不符合我的期望。谁能帮助我。
当您使用ShowDialog()
时,它会打开一个模式对话框,预计完成后会关闭。
如果您想打开多个窗口而不阻止表单控制,请尝试Show()
改用。
var window = new MainWindow();
window.Show();
我建议您阅读 MSDN 上的所有相关页面,以便了解一切是如何工作的。
对于Show
方法:
打开一个窗口并返回而不等待新打开的窗口关闭。
对于ShowDialog
方法:
打开一个窗口并仅在新打开的窗口关闭时返回。
从Window.Show Method页面的备注部分:
当 Window 类被实例化时,它默认是不可见的。Show 显示一个窗口并立即返回,无需等待窗口关闭。因此,打开的窗口不会阻止用户与应用程序中的其他窗口进行交互。这种类型的窗口称为无模式窗口。无模式窗口的常见示例是属性窗口、工具箱和调色板。要限制用户与特定窗口交互,必须通过调用 ShowDialog 打开窗口。
调用 Show 实现与将 Window 对象的 Visibility 属性设置为 Visible 相同的最终结果。但是,从时间的角度来看,两者之间存在差异。
因此,对于您的解决方案,我建议您改用该Show
方法。