在我的App
类的构造函数中,当它返回true时,窗口显示为对话框:
public App()
{
for (;;)
{
...
var factory = new ControlsFactory<int>();
var window = factory.CreateWindow(model);
var result = window.ShowDialog();
if (!(result ?? false)) return;
}
}
它在第一次迭代中成功显示并返回true(我有一个带有单击处理程序的按钮,我设置DialogResult = true;
),但下次它立即返回false
并且循环被破坏。有没有什么方法可以将窗口显示为对话,从而产生无限的对话?
答案 0 :(得分:1)
您可能需要将Application.Current.ShutdownMode
设置为ShutdownMode.OnExplicitShutdown
。
MSDN:
ShutdownMode.OnExplicitShutdown
只有在调用Shutdown时,应用程序才会关闭。
这是因为,显示模态对话框(当它是唯一存在的窗口时)将默认导致应用程序退出消息被发布,从而导致任何未来的窗口立即关闭之前,直观地展示它们。