C# WinForm中的WPF窗口让应用程序挂起

C# WinForm中的WPF窗口让应用程序挂起,c#,.net,wpf,winforms,C#,.net,Wpf,Winforms,当我在WinForms应用程序中打开WPF窗口时,整个应用程序在MainForm关闭且Main方法离开后挂起。只有一个环境。退出(0)有帮助。但这是一个黑客解决方案。我还错过了别的把戏吗 正在Application.Run-Loop中启动MainForm [STAThread] 静态void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); 运行(新的M

当我在WinForms应用程序中打开WPF窗口时,整个应用程序在MainForm关闭且Main方法离开后挂起。只有一个环境。退出(0)有帮助。但这是一个黑客解决方案。我还错过了别的把戏吗

正在Application.Run-Loop中启动MainForm

[STAThread]
静态void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
运行(新的MainForm());
//Environment.Exit(0);->只有此选项有帮助。
}
主窗体按钮1:显示HostedWPForm和纯WpfWindow

public分部类MainForm:Form
{
公共表格(
{
初始化组件();
}
私有无效按钮1\u单击(对象发送者,事件参数e)
{
//winform窗口内的此托管wpf控件不会导致任何问题
//新的HostedWpfForm(新的WpfUserControl()).Show();
//此纯wpf窗口在关闭MainForm并退出Main后挂起
//仅限环境。在程序结束时退出(0)。Main有助于关闭!
wpfwindowwpfwnd=新的WpfWindow();
ElementHost.EnableModelessKeyboardInterop(wpfwnd);
wpfwnd.Show();
}
}
HostedWpfForm看起来像这样,不会引起任何问题

公共部分类HostedWpfForm:Form
{
公共寄宿家庭表单(UIElement UIElement)
{
初始化组件();
ElementHost主机=新的ElementHost();
host.Dock=DockStyle.Fill;
host.Child=ui元素;
控件。添加(主机);
}
}
WpfUserControl

public部分类WpfUserControl:UserControl
{
公共WpfUserControl()
{
初始化组件();
}
}
WpfWindow会导致问题

公共部分类WpfWindow:Window
{
公共WpfWindow()
{
初始化组件();
}
}
顺便说一下:我添加了这些ProjectTypeGuid,以便能够在项目中添加Wpf窗口

{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}

有人知道为什么纯wpf窗口会导致这些挂起问题吗?

如果周围有另一个线程,它会挂起,请使用调试>窗口>线程来了解它在做什么。当心黑客。在这种情况下,VisualStudio宿主进程可能会出现问题。使用项目>属性>调试选项卡>取消勾选。感谢您的回答。用上面的代码可以重现问题。正如你所看到的,里面没有任何事件。另外,“线程”窗口仅显示非托管框架线程。关闭vs托管进程会带来其他一些缺点。