好的,我应该先说我不确定这是否一定是处理此问题的正确方法,但是...
基本上,我在 WPF 中创建了一个窗口,用于在我的应用程序中显示通知(有点像 Outlook 新邮件通知)。我想尝试在它自己的线程中显示此窗口(将来它可能会做一些工作)。
我使用 WPF 创建了窗口,因为它可以更好地处理诸如 AlwaysOnTop 和淡入淡出之类的事情。
显示通知的应用程序是 3.5 Windows 窗体应用程序。我见过与此类似的示例 SOF: C# winforms startup (Splash) form not hiding用于在不同线程中显示表单,但是我无法使用 WPF 窗口启动新的消息循环。
我试过在新线程中调用 Notification.Show(),但窗口从未显示。
是否可以在它自己的线程中显示此 WPF?
为什么我看到一些资源说您不应该在单独的线程中显示任何 UI?
最佳答案
WPF Threading Model有这方面的详细信息。寻找“多窗口,多线程”。
基本上,您启动一个新线程,该线程创建相关窗口然后调用
System.Windows.Threading.Dispatcher.Run();
为了在新线程上为该窗口运行调度程序。
关于c# - 从 Windows 窗体应用程序在另一个线程中打开 WPF 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/729584/