[英]Bring to front inactive window
我有两个WPF应用程序。 他们两个都有一个Topmost
属性设置为true
的窗口。 第一个应用程序的窗口是全屏窗口,第二个应用程序仅占据部分屏幕。 同样重要的是,第二个应用程序无法激活(以下代码阻止了激活):
private const int GWL_EXSTYLE = -20;
private const int WS_EX_NOACTIVATE = 0x08000000;
[DllImport("user32.dll")]
public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex,int dwNewLong);
[DllImport("user32.dll")]
public static extern int GetWindowLong(IntPtr hWnd,int nIndex);
protected override void OnSourceInitialized(EventArgs e)
{
WindowInteropHelper helper = new WindowInteropHelper(window);
SetWindowLong(helper.Handle, GWL_EXSTYLE, GetWindowLong(helper.Handle, GWL_EXSTYLE) | WS_EX_NOACTIVATE);
}
当用户单击放置在第一个应用程序上的按钮时,我试图将第二个应用程序置于前面。 我试图通过使用SetForegroundWindow和ShowWindow实现此目的,但是它不起作用。 有人对此问题有解决方案吗?
尝试
yourSpecificWindow.Activate();
如果那不能解决问题,还包括
yourSpecificWindow.TopMost = true;
yourSpecificWindow.Focus();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.