无法重复显示对话框
Unable to ShowDialog repeatedly
在我的 App
class 的构造函数中,我重复显示 window 作为对话框,而它 returns 是:
public App()
{
for (;;)
{
...
var factory = new ControlsFactory<int>();
var window = factory.CreateWindow(model);
var result = window.ShowDialog();
if (!(result ?? false)) return;
}
}
它在第一次迭代时显示成功并且 returns 正确(我有一个带有点击处理程序的按钮,我在其中设置 DialogResult = true;
),但下次它只是 returns false
立即循环中断。有什么方法可以将 window 显示为相应且无限的对话吗?
您可能需要将 Application.Current.ShutdownMode
设置为 ShutdownMode.OnExplicitShutdown
。
MSDN:
ShutdownMode.OnExplicitShutdown
An application shuts down only when Shutdown is called.
这是因为,显示模态对话框(当它是唯一 window 存在时)默认情况下会导致发布应用程序 退出消息,从而导致任何未来 windows 到 立即关闭 ,然后再以视觉方式显示。
在我的 App
class 的构造函数中,我重复显示 window 作为对话框,而它 returns 是:
public App()
{
for (;;)
{
...
var factory = new ControlsFactory<int>();
var window = factory.CreateWindow(model);
var result = window.ShowDialog();
if (!(result ?? false)) return;
}
}
它在第一次迭代时显示成功并且 returns 正确(我有一个带有点击处理程序的按钮,我在其中设置 DialogResult = true;
),但下次它只是 returns false
立即循环中断。有什么方法可以将 window 显示为相应且无限的对话吗?
您可能需要将 Application.Current.ShutdownMode
设置为 ShutdownMode.OnExplicitShutdown
。
MSDN:
ShutdownMode.OnExplicitShutdown
An application shuts down only when Shutdown is called.
这是因为,显示模态对话框(当它是唯一 window 存在时)默认情况下会导致发布应用程序 退出消息,从而导致任何未来 windows 到 立即关闭 ,然后再以视觉方式显示。