从winforms应用程序关闭所有WPF窗口

本文关键字:WPF 窗口 winforms 应用程序 | 更新日期: 2023-09-27 18:02:22

我通过ElementHost控件在我的winforms应用程序中托管一个WPF应用程序。我实现了一个在WPF端监听未处理异常的逻辑。如果捕获到异常,应处置ElementHost控件,并关闭所有相关的WPF窗口。

如果只有一个WPF窗口,这工作得很好。由于WPF应用程序可以打开更多的子窗口(这是未停靠的窗口),当我处置ElementHost控件时,这些窗口不会关闭。

是否有一个简单的方法来关闭WPF窗口和所有的子窗口从winforms方面?

我已经尝试了Application.OpenForms,但子WPF窗口不显示(在某种程度上有意义;-))。

一个注释:我确实拥有WPF代码,所以我可以在WPF方面实现一些东西,但我真的很想坚持在win窗体方面。

我还想考虑WPF窗口代码可能"卡住"并且无法做出反应并关闭它的情况。这就是为什么我想从"外面"杀死窗户

从winforms应用程序关闭所有WPF窗口

所以我下定决心,遵循cdkMoose的建议,让WPF部分来处理这个问题。让那些知道该做什么的人来做清理工作可能是个好主意。不过谢谢!