Avi*_* P. 95
一种可能的方法是扫描应用程序中打开的窗口列表,并检查它们中的哪一个IsActive = true:
Application.Current.Windows.OfType<Window>().SingleOrDefault(x => x.IsActive);
Run Code Online (Sandbox Code Playgroud)
例如,如果显示模式对话框,则不确定是否存在多个活动窗口,在这种情况下,对话框的所有者和对话框本身可能处于活动状态.
gho*_*ord 22
使用PInvoke有更好的方法.Aviads答案不是一直有效(有一些边缘情况有对话框).
IntPtr active = GetActiveWindow();
ActiveWindow = Application.Current.Windows.OfType<Window>()
.SingleOrDefault(window => new WindowInteropHelper(window).Handle == active);
Run Code Online (Sandbox Code Playgroud)
首先必须包括以下导入:
[DllImport("user32.dll")]
static extern IntPtr GetActiveWindow();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44832 次 |
| 最近记录: |