.net 现在显示WinForms应用程序中的WPF窗口
我正在开发一个WinForms应用程序。我单击按钮以显示WPF窗口,执行以下代码:.net 现在显示WinForms应用程序中的WPF窗口,.net,wpf,winforms,window,winforms-interop,.net,Wpf,Winforms,Window,Winforms Interop,我正在开发一个WinForms应用程序。我单击按钮以显示WPF窗口,执行以下代码: void button1_Click(object sender, EventArgs e) { Window window = new Window(); ElementHost.EnableModelessKeyboardInterop(window); window.Show(); } 当我第一次启动窗口时,窗口会出现。 然后,如果我关闭窗口并尝试再次显示,则窗口不会出现。 作为提
void button1_Click(object sender, EventArgs e)
{
Window window = new Window();
ElementHost.EnableModelessKeyboardInterop(window);
window.Show();
}
当我第一次启动窗口时,窗口会出现。
然后,如果我关闭窗口并尝试再次显示,则窗口不会出现。
作为提示,在玩代码时,我发现如果我创建两次WPF窗口,窗口总是显示出来
因此,它让我想到了调度程序的问题,或者在窗口构造函数中执行的操作。您的代码片段不会重新处理该问题。WPF需要dispatcher循环,没有它,很多东西都无法正常工作。您必须使用ShowDialog。@HansPassant:是的,这个问题不会在干净的应用程序中重现。似乎在我的实际应用程序中,我遇到了一些多线程交互。不管怎样,我看到了同样的行为。
void button1_Click(object sender, EventArgs e)
{
Window window = new Window();
window = new Window(); // creating the window twice WORKS!!
ElementHost.EnableModelessKeyboardInterop(window);
window.Show();
}