将系统重点放在我的应用程序上

时间:2009-04-26 22:18:28

标签: wpf focus

我有一个主要在后台运行的应用程序。我希望它处理的某些系统事件会导致应用程序从前台应用程序窃取焦点,无论是什么。但UIElement.Focus()似乎只在WPF应用程序中设置焦点。也就是说,如果WPF应用程序已经将焦点作为一个整体,那么Focus()会将焦点设置为正确的控件。但我需要从另一个应用程序中窃取焦点并将其放在我的应用程序上。我怎么能这样做?

想要一个系统模态对话框。也就是说,在窗口窃取焦点之后,用户应该可以立即切换到另一个应用程序而不会忽略我的应用程序窗口。

当应用程序需要窃取系统焦点时,应用程序可能已处于已恢复,最小化或甚至“最小化到托盘”状态。因此,假设它被最小化并且在恢复窗口时偷走焦点是不可接受的。

1 个答案:

答案 0 :(得分:6)

如果你不介意做som p / invokes,SetForegroundWindow功能应该可以帮助你:
http://pinvoke.net/default.aspx/user32/SetForegroundWindow.html