我有一个主要在后台运行的应用程序.我希望它处理的某些系统事件会导致应用程序从前台应用程序窃取焦点,无论是什么.但UIElement.Focus()似乎只在WPF应用程序中设置焦点.也就是说,如果WPF应用程序已经将焦点作为一个整体,那么Focus()会将焦点设置为正确的控件.但我需要从另一个应用程序中窃取焦点并将其放在我的应用程序上.我怎样才能做到这一点?
我不想要系统模态对话框.也就是说,在窗口窃取焦点之后,用户应该可以立即切换到另一个应用程序而不会关闭我的应用程序窗口.
当需要窃取系统焦点时,应用程序可能已经处于恢复,最小化或甚至"最小化到托盘"状态.因此,假设它被最小化并且在恢复窗口时偷走焦点是不可接受的.
如果您不介意做som p/invokes,该SetForegroundWindow函数应该能够帮助您:http:
//pinvoke.net/default.aspx/user32/SetForegroundWindow.html
| 归档时间: |
|
| 查看次数: |
2147 次 |
| 最近记录: |