我有一个主要在后台运行的应用程序。我想要它处理的某些系统事件导致应用程序从前台应用程序中窃取焦点,无论是什么。但 UIElement.Focus() 似乎只在 WPF 应用程序中设置焦点。也就是说,如果 WPF 应用程序整体已经拥有焦点,那么 Focus() 会将焦点设置到正确的控件。但我需要从另一个应用程序中窃取焦点并将其放在我的应用程序上。我怎样才能做到这一点?
我不想要系统模式对话框。也就是说,在窗口窃取焦点后,用户应该可以立即切换到另一个应用程序而无需关闭我的应用程序的窗口。
当应用程序需要窃取系统焦点时,它可能已经处于恢复、最小化甚至“最小化到托盘”状态。因此,假设它被最小化并在恢复窗口时窃取焦点是不可接受的。